Пример #1
0
 private static void ExtractData(LiteFileInfo file, out LibGit2Sharp.ObjectId oid, out int length, out ObjectType objectType)
 {
     using (var reader = new BinaryReader(file.OpenRead()))
     {
         oid        = new LibGit2Sharp.ObjectId(reader.ReadString());
         objectType = (ObjectType)reader.ReadInt32();
         length     = reader.ReadInt32();
     }
 }
Пример #2
0
        public void LoadFile(LiteFileInfo file)
        {
            var textRegex = new Regex("text|json|script|xml");

            if (file.MimeType.StartsWith("image"))
            {
                using (var fStream = file.OpenRead())
                {
                    var stream = new MemoryStream();
                    fStream.CopyTo(stream);
                    stream.Seek(0, SeekOrigin.Begin);

                    var bitmap = new BitmapImage();
                    bitmap.BeginInit();
                    bitmap.StreamSource = stream;
                    bitmap.CacheOption  = BitmapCacheOption.OnLoad;
                    bitmap.EndInit();
                    bitmap.Freeze();

                    ImageImage.Source     = bitmap;
                    ImageImage.Visibility = Visibility.Visible;
                    TextText.Visibility   = Visibility.Collapsed;
                }
            }
            else if (textRegex.IsMatch(file.MimeType))
            {
                using (var fileStream = file.OpenRead())
                {
                    using (var reader = new StreamReader(fileStream))
                    {
                        var myStr = reader.ReadToEnd();

                        TextText.Text         = myStr;
                        TextText.Visibility   = Visibility.Visible;
                        ImageImage.Visibility = Visibility.Collapsed;
                    }
                }
            }
        }
Пример #3
0
        private void ExtractData(LiteFileInfo file, out LibGit2Sharp.ObjectId oid, out UnmanagedMemoryStream data, out ObjectType objectType)
        {
            using (var reader = new BinaryReader(file.OpenRead()))
            {
                oid        = new LibGit2Sharp.ObjectId(reader.ReadString());
                objectType = (ObjectType)reader.ReadInt32();
                var length = reader.ReadInt32();
                var bytes  = reader.ReadBytes(length);
                data = AllocateAndBuildFrom(bytes);

                // Update last item
                _lastItem = new StoreItem(oid.Sha, objectType, bytes);
            }
        }
Пример #4
0
 private XElement ReadElementFromFile(LiteFileInfo fileInfo)
 {
     using (var fileStream = fileInfo.OpenRead())
     {
         try
         {
             return(XElement.Load(fileStream));
         }
         catch (XmlException e)
         {
             var logger = LoggerFactory?.CreateLogger <LiteDbXmlStorage>();
             logger?.LogError($"The key file '{fileInfo.Filename}' is corrupted.\nSee details:\n{e}");
             return(null);
         }
     }
 }
Пример #5
0
        public static TFile ToStorageFile <TFile>(this LiteFileInfo fileInfo) where TFile : class, IStorageFile, new()
        {
            TFile file = new TFile
            {
                Id = fileInfo.Id
            };

            // Read
            using (LiteFileStream fs = fileInfo.OpenRead())
                using (MemoryStream ms = new MemoryStream())
                {
                    fs.CopyTo(ms);

                    file.Content = ms.ToArray();
                }

            return(file);
        }
Пример #6
0
        private void DownloadFile(LiteFileInfo file, Stream outStream)
        {
            using (var fileStream = file.OpenRead())
            {
                if (fileStream.Length > file.Length)
                {
                    fileStream.SetLength(file.Length);
                }

                if (_compress)
                {
                    using (var deflate = new DeflateStream(outStream, CompressionMode.Decompress))
                    {
                        deflate.CopyTo(outStream);
                    }
                }
                else
                {
                    fileStream.CopyTo(outStream);
                }
            }
        }