Exemplo n.º 1
0
 private bool TryGetCacheImageStream(string id, string imageUrl, out Stream outImageStream)
 {
     id = $"$/{id}";
     if (_fileStorage.Exists(id))
     {
         var file   = _fileStorage.FindById(id);
         var stream = new MemoryStream((int)file.Length);
         try
         {
             file.CopyTo(stream);
             stream.Seek(0, SeekOrigin.Begin);
             _fileStorage.SetMetadata(id, new BsonDocument(new Dictionary <string, BsonValue>()
             {
                 { "updateAt", DateTime.Now }
             }));
             outImageStream = stream;
             return(true);
         }
         catch
         {
             stream.Dispose();
             throw;
         }
     }
     else
     {
         outImageStream = null;
         return(false);
     }
 }
Exemplo n.º 2
0
        public void Storage_ReadWriteStream_Test()
        {
            var HELLO1 = "Hello World LiteDB 1 ".PadRight(300000, '-') + "\nEND";
            var HELLO2 = "Hello World LiteDB 2 - END";

            using (var file = new TempFile())
                using (var db = new LiteEngine(file.Filename))
                {
                    var sto = new LiteStorage(db);

                    // insert HELLO1 file content
                    using (var stream = sto.OpenWrite("f1", "f1.txt"))
                    {
                        using (var sw = new StreamWriter(stream))
                        {
                            sw.Write(HELLO1);
                        }
                    }

                    // test if was updated Length in _files collection
                    var doc = db.Find("_files", Query.EQ("_id", "f1")).Single();

                    Assert.AreEqual(HELLO1.Length, doc["length"].AsInt32);

                    using (var stream = sto.OpenRead("f1"))
                    {
                        var sr    = new StreamReader(stream);
                        var hello = sr.ReadToEnd();

                        Assert.AreEqual(HELLO1, hello);
                    }

                    // updating to HELLO2 content same file id
                    using (var stream = sto.OpenWrite("f1", "f1.txt"))
                    {
                        using (var sw = new StreamWriter(stream))
                        {
                            sw.Write(HELLO2);
                        }
                    }
                    using (var stream = sto.OpenRead("f1"))
                    {
                        var sr    = new StreamReader(stream);
                        var hello = sr.ReadToEnd();

                        Assert.AreEqual(HELLO2, hello);
                    }

                    // now delete all
                    sto.Delete("f1");

                    Assert.IsFalse(sto.Exists("f1"));
                }
        }
Exemplo n.º 3
0
 public bool FileExists(string key)
 {
     return(files.Exists(key));
 }
Exemplo n.º 4
0
 public bool IsFileExisit(string id)
 {
     return(_storage.Exists(id));
 }