123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using SQLite;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- namespace VidFilesUpgradeTool
- {
- enum OperatingSystem
- {
- X86,
- X64
- }
- class SQliteStorageFileInfoDictionary
- {
- private readonly SQLiteConnection _connection;
- private const string IndexFileName = "StorageFileInfos.db";
- private readonly string _indexFilePath;
- public SQliteStorageFileInfoDictionary(string storageFolder)
- {
- _indexFilePath = Path.Combine(storageFolder, IndexFileName);
- PrepareLibraries(AppDomain.CurrentDomain.BaseDirectory);
- _connection = new SQLiteConnection(_indexFilePath);
- }
- private void PrepareLibraries(string storageFolder)
- {
- var packageSqliteDir = storageFolder;
- var libDest = Path.Combine(packageSqliteDir, "sqlite3.dll");
- if (File.Exists(libDest)) return;
- var libs = new Dictionary<OperatingSystem, string>
- {
- {OperatingSystem.X86, Path.Combine(packageSqliteDir, "sqlite3.x86.dll")},
- {OperatingSystem.X64, Path.Combine(packageSqliteDir, "sqlite3.x64.dll")}
- };
- File.Copy(Environment.Is64BitOperatingSystem ? libs[OperatingSystem.X64] : libs[OperatingSystem.X86], libDest);
- libs.Values.ToList().ForEach(File.Delete);
- }
- public StorageFileInfo GetStorageFileInfo(string token)
- {
- var findResult = _connection.Table<StorageFileInfo>().Where(x => x.Token == token).ToList();
- return findResult.FirstOrDefault();
- }
- public StorageFileInfo GetStorageFileInfoByName(string fileName)
- {
- var findResult = _connection.Table<StorageFileInfo>().Where(x => x.FileName == fileName).ToList();
- return findResult.FirstOrDefault();
- }
- }
- }
|