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);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        private bool Exists(string id)
        {
            using var db = new LiteDatabase(Settings.Default.ConnectionString);
            var storage = db.GetStorage <string>();

            return(storage.Exists(id));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
            }
        }
Exemplo n.º 5
0
        public void Delete(string id)
        {
            using (var db = new LiteDatabase(Settings.Default.ConnectionString))
            {
                var storage = db.GetStorage <string>();

                storage.Delete(id);
            }
        }
Exemplo n.º 6
0
        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>();
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
            }
        }
Exemplo n.º 10
0
        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;
            }
        }
Exemplo n.º 11
0
        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();
                    }
                }
            }
        }
Exemplo n.º 12
0
        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");
            }
        }
Exemplo n.º 13
0
        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);
                }
        }
Exemplo n.º 14
0
 private ILiteStorage <string> GetFileStorage(LiteDatabase productDb)
 {
     return(productDb.GetStorage <string>("productFiles"));
 }
 public ILiteStorage <ThumbnailCacheIdEntity> GetStorage() => _database.GetStorage <ThumbnailCacheIdEntity>("_thumbnail_cache_files", "_thumbnail_cache_chunks");