public async Task BatchAddAsync(List <PersonalInfo> personalInfos, CancellationToken cancellationToken = default) { var infos = _liteDatabase.GetCollection <PersonalInfo>(); infos.InsertBulk(personalInfos); if (personalInfos != null && personalInfos.Count > 0) { var fs = _liteDatabase.GetStorage <string>("dataFiles", "dataChunks"); foreach (var item in personalInfos) { var pathFull = $"{Package.Current.InstalledLocation.Path}\\Assets\\Logo\\{item.AvatarName}"; if (!fs.Exists($"$/Data/{item.AvatarName}")) { var ret = await Package.Current.InstalledLocation.GetItemAsync($"Assets\\Logo\\{item.AvatarName}"); if (ret != null) { fs.Upload($"$/Data/{item.AvatarName}", pathFull); } } } } }
private bool Exists(string id) { using var db = new LiteDatabase(Settings.Default.ConnectionString); var storage = db.GetStorage <string>(); return(storage.Exists(id)); }
private async Task <ICollection <IConvertMessage> > CreateInstancesAsync() { var result = new List <IConvertMessage>(); using (var db = new LiteDatabase(Settings.Default.ConnectionString)) { var storage = db.GetStorage <string>(); var streams = storage.FindAll().Select(x => x.OpenRead()).ToList(); foreach (var stream in streams) { var memory = new MemoryStream(); await stream.CopyToAsync(memory); var rawAssembly = memory.ToArray(); Assembly assembly = Assembly.Load(rawAssembly); foreach (var type in assembly.GetExportedTypes()) { if (assembly.CreateInstance(type.FullName) is IConvertMessage instance) { result.Add(instance); } } } } return(result); }
void LoadShortcuts() { using (var db = new LiteDatabase(@".\sc.db")) { var collection = db.GetCollection <Shortcut>(); var list = collection.FindAll()?.ToList(); if (list != null) { foreach (var shortcut in list) { MemoryStream iconStream = new MemoryStream(); var fs = db.GetStorage <string>(); // method 1 //var file = fs.FindById(shortcut.Icon); //file.CopyTo(iconStream); // method 2 //fs.Download(shortcut.Icon, @"D:\luzhi.jpg", true); // method 3 //var file = fs.FindById(shortcut.Icon); //if (file != null) //{ // using (var fStream = file.OpenRead()) // { // fStream.CopyTo(iconStream); // iconStream.Seek(0, SeekOrigin.Begin); // } //} // 加载图标 if (!string.IsNullOrEmpty(shortcut.Icon)) { fs.Download(shortcut.Icon, iconStream); iconStream.Seek(0, SeekOrigin.Begin); // 就差这一句 shortcut.IconStream = (ImageSource) new ImageSourceConverter().ConvertFrom(iconStream); } else { if (File.Exists(shortcut.Command)) { var icon = ShellIcon.GetLargeIcon(shortcut.Command); shortcut.IconStream = icon.ToImageSource(); } else { //todo: 默认图标 } } } } this.Datas = list; } }
public void Delete(string id) { using (var db = new LiteDatabase(Settings.Default.ConnectionString)) { var storage = db.GetStorage <string>(); storage.Delete(id); } }
private MessageBoxContext() { var folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Shard"); Directory.CreateDirectory(folder); db = new LiteDatabase(Path.Combine(folder, "tracking.db")); messages = db.GetCollection <TrackedMessage>("trackedMessages"); logs = db.GetCollection <LogEntry>("logEntries"); storage = db.GetStorage <Guid>(); }
private void Upload(string path) { var id = Path.GetFileName(path); using var db = new LiteDatabase(Settings.Default.ConnectionString); var storage = db.GetStorage <string>(); var stream = new FileStream(path, FileMode.Open, FileAccess.Read); storage.Upload(id, id, stream); }
public IEnumerable <ImageModel> FindAll(bool includeDeleted = false) { var fs = _liteDb.GetStorage <Guid>("imageFiles", "imageChunks"); var models = fs.FindAll() .Select(file => { var model = new ImageModel() { Id = file.Metadata["_id"], Title = file.Metadata["title"].AsString, Body = file.Metadata["body"].AsString, Filename = file.Metadata["filename"].AsString, Type = file.Metadata["type"].AsString, Uploaded = file.Metadata["uploaded"], Updated = file.Metadata["updated"], Deleted = file.Metadata["deleted"], }; return(model); }) .Where(model => model.Deleted == false || includeDeleted); return(models); }
static void FiletoDb() { using (var db = new LiteDatabase("sample1.db")) { var storage = db.GetStorage <int>(); //Upload a file from file system to database // storage.Upload(1, @"mytest.png"); // And download later storage.Download(1, @"d:\picture-01.jpg", true); } }
private void Display() { using (var db = new LiteDatabase(Settings.Default.ConnectionString)) { var storage = db.GetStorage <string>(); var files = storage.FindAll().Select(x => new DllFileInfo { Id = x.Id, Length = x.Length, UploadDate = x.UploadDate }).ToList(); this.dgvDll.DataSource = files; } }
public void Add(Shortcut shortcut) { using (var db = new LiteDatabase(@".\sc.db")) { var collection = db.GetCollection <Shortcut>(); // 给shortcut加上Id shortcut.ShortcutId = ObjectId.NewObjectId(); collection.Insert(shortcut); // 上传图标 if (!string.IsNullOrEmpty(shortcut.Icon)) { var storage = db.GetStorage <string>(); storage.Upload(shortcut.ShortcutId.ToString(), shortcut.Icon); } else { string key = shortcut.ShortcutId.ToString(); string iconKey = "$/Icons/" + key; shortcut.Icon = iconKey; if (File.Exists(shortcut.Command)) { var icon = ShellIcon.GetLargeIcon(shortcut.Command); MemoryStream ms = new MemoryStream(); icon.Save(ms); var storage = db.GetStorage <string>(); storage.Upload(key, iconKey, ms); ms.Dispose(); } } } }
void Add() { using (var db = new LiteDatabase(@".\sc.db")) { var collection = db.GetCollection <Shortcut>(); var shortcut = new Shortcut() { Command = @"%windir%\system32\notepad.exe", Description = "记事本", Title = "Notepad", ShortcutId = ObjectId.NewObjectId(), Icon = "$/Icons/notepad.jpg" }; collection.Insert(shortcut); var storage = db.GetStorage <string>(); storage.Upload(shortcut.Icon, @"F:\Works\DriveScan1\DriveScan\Resources\luzhi.JPG"); } }
public void Storage_Upload_Download() { using (var f = new TempFile()) using (var db = new LiteDatabase(f.Filename)) //using (var db = new LiteDatabase(@"c:\temp\file.db")) { var fs = db.GetStorage <int>("_files", "_chunks"); var small = fs.Upload(10, "photo_small.png", new MemoryStream(_smallFile)); var big = fs.Upload(100, "photo_big.png", new MemoryStream(_bigFile)); Assert.AreEqual(small.Length, _smallFile.Length); Assert.AreEqual(big.Length, _bigFile.Length); var f0 = fs.Find(x => x.Filename == "photo_small.png").First(); var f1 = fs.Find(x => x.Filename == "photo_big.png").First(); Assert.AreEqual(_smallHash, this.HashFile(f0.OpenRead())); Assert.AreEqual(_bigHash, this.HashFile(f1.OpenRead())); // now replace small content with big-content var repl = fs.Upload(10, "new_photo.jpg", new MemoryStream(_bigFile)); Assert.IsTrue(fs.Exists(10)); var nrepl = fs.FindById(10); Assert.AreEqual(repl.Chunks, nrepl.Chunks); // update metadata fs.SetMetadata(100, new BsonDocument { ["x"] = 100, ["y"] = 99 }); // find using metadata var md = fs.Find(x => x.Metadata["x"] == 100).FirstOrDefault(); Assert.AreEqual(99, md.Metadata["y"].AsInt32); } }
private ILiteStorage <string> GetFileStorage(LiteDatabase productDb) { return(productDb.GetStorage <string>("productFiles")); }
public ILiteStorage <ThumbnailCacheIdEntity> GetStorage() => _database.GetStorage <ThumbnailCacheIdEntity>("_thumbnail_cache_files", "_thumbnail_cache_chunks");