Example #1
0
        public string StoreData(byte[] data, string extension = null)
        {
            var hasher = new SHA256Managed();

            hasher.Initialize();

            string hash = null;

            using (hasher)
            {
                hash = HexTools.ByteArrayToHexString(hasher.ComputeHash(data));

                var targetPath = BuildPath(hash, extension);
                if (_storage.Exists(targetPath))
                {
                    return(null);
                }

                var directory = Path.GetDirectoryName(targetPath);
                _storage.CreateFolder(directory);

                var file = _storage.Open(targetPath);
                using (file)
                {
                    file.Write(data, 0, data.Length);
                }
            }

            return(hash);
        }
 public OperationsWriter(IFileSystem fileSystem, FileHelper fileHelper)
 {
     _fileHelper = fileHelper;
     _disposed   = false;
     _cleared    = false;
     _removed    = false;
     _fullWriter = new Lazy <XmlWriter>(
         () => XmlWriter.Create(fileSystem.Open(fileHelper.ProductsFile, FileMode.CreateNew, FileAccess.Write),
                                new XmlWriterSettings
     {
         Indent             = false,
         OmitXmlDeclaration = false,
         CloseOutput        = true
     }));
     _addWriter = new Lazy <XmlWriter>(
         () => XmlWriter.Create(fileSystem.Open(fileHelper.ProductsAddFile, FileMode.CreateNew, FileAccess.Write),
                                new XmlWriterSettings
     {
         CheckCharacters    = true,
         Indent             = false,
         OmitXmlDeclaration = true,
         CloseOutput        = true
     }));
     _delWriter = new Lazy <XmlWriter>(
         () => XmlWriter.Create(fileSystem.Open(fileHelper.ProductsDelFile, FileMode.CreateNew, FileAccess.Write),
                                new XmlWriterSettings
     {
         Indent             = false,
         OmitXmlDeclaration = true,
         CloseOutput        = true
     }));
 }
 public Stream OpenForRead()
 {
     return(_fileSystem.Open(
                RelativePath,
                FileMode.Open,
                FileAccess.Read
                ));
 }
Example #4
0
        public void TestOpenE2E()
        {
            string fileName = UploadFromString(ContentsText);

            using (var reader = new StreamReader(_fileSystem.Open(PathToFile(fileName))))
            {
                string streamText = reader.ReadToEnd();
                Assert.Equal(ContentsText, streamText);
            }
        }
Example #5
0
        public void Serialize(string rootPath, INode node, bool recursive = false)
        {
            string nodePath = Path.Combine(rootPath, node.Name.SanitizeUrl());

            if (!_fileSystem.DirectoryExists(nodePath))
            {
                _fileSystem.CreateDirectory(nodePath);
            }

            var metaModel = new MetaModel(node, nodePath);

            using (var fs = _fileSystem.Open(Path.Combine(nodePath, "Properties.txt"), FileMode.Create, FileAccess.Write, FileShare.None))
                using (var writer = new StreamWriter(fs))
                {
                    writer.WriteLine("Type: {0}", node.GetType().FullName);
                    writer.WriteLine("Urls: {0}", node.Uri);
                    writer.WriteLine("Template: {0}", node.Template);
                    writer.WriteLine("Publish: {0}", "Never");
                    writer.WriteLine("Unpublish: {0}", "Never");
                }

            foreach (var s in metaModel.Properties)
            {
                string path = Path.Combine(nodePath, s.Name.SanitizeUrl() + ".txt");
                using (var fs = _fileSystem.Open(path, FileMode.Create, FileAccess.Write, FileShare.None))
                    using (var writer = new StreamWriter(fs))
                    {
                        writer.Write(s.Value.ToString());
                    }
            }

            foreach (var prop in metaModel.XmlProperties)
            {
                string path = Path.Combine(nodePath, prop.Name.SanitizeUrl() + ".xml");
                using (var fs = _fileSystem.Open(path, FileMode.Create, FileAccess.Write, FileShare.None))
                    using (var writer = new StreamWriter(fs))
                    {
                        writer.Write(prop.Value.ToString());
                    }
            }

            //  TODO
            //foreach (var collection in collections.Where(c => !ExcludedProperties.Contains(c.Name)))
            //{

            //}

            if (recursive)
            {
                foreach (var child in node.Children)
                {
                    Serialize(rootPath: nodePath, node: child, recursive: true);
                }
            }
        }
Example #6
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="path"></param>
 /// <param name="fileIO"></param>
 /// <param name="serializer"></param>
 /// <returns></returns>
 public static XProject Open(string path, IFileSystem fileIO, IJsonSerializer serializer)
 {
     using (var stream = fileIO.Open(path))
     {
         return Open(stream, fileIO, serializer);
     }
 }
Example #7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="path"></param>
 /// <param name="fileIO"></param>
 /// <param name="serializer"></param>
 /// <returns></returns>
 public static XProject Open(string path, IFileSystem fileIO, ITextSerializer serializer)
 {
     using (var stream = fileIO.Open(path))
     {
         return(Open(stream, fileIO, serializer));
     }
 }
        public void Build(bool incremental)
        {
            if (_appConfig.EnableAds)
            {
                _indexSystem.Log("Extracting ads.");

                var ads = Enumerable.Empty <IEntity>();
                if (!incremental)
                {
                    ads = new AdAttributeHelper().ConvertToAds(_dataTableMapper, _promotionEntryCodeProvider);
                }
                ads = UsePlugins(ads, incremental);

                var allAds = ads.ToArray();
                if (allAds.Any() || !incremental)
                {
                    var adsXml = new XElement("operations",
                                              new XElement("clear",
                                                           new XElement("ad")),
                                              new XElement("add",
                                                           ConvertAdsToXml(allAds)));
                    using (var file = _fileSystem.Open(_fileHelper.AdsFile, FileMode.CreateNew, FileAccess.Write))
                    {
                        adsXml.Save(file);
                    }
                }
                _indexSystem.Log("Done extracting ads.");
            }
        }
        public void WriteConfiguration()
        {
            //if we have custom configuration, write and exit
            if (!string.IsNullOrWhiteSpace(_appConfig.ConfigurationXmlFile))
            {
                TransferPrepared();
                return;
            }

            using (var outFile = _fileSystem.Open(_fileHelper.ConfigurationFile, FileMode.CreateNew, FileAccess.Write))
                using (var eSalesConfigurationWriter = new StreamWriter(outFile, Encoding.UTF8))
                {
                    var eSalesConfiguration = new configuration
                    {
                        search_refinements = Loader.Load <search_refinements>(),
                        formats            = Loader.Load <formats>().format,
                        tokenizations      = Loader.Load <tokenizations>().tokenization,
                        normalizations     = Loader.Load <normalizations>().normalization
                    };
                    _facetDict = _configuration.FacetAttributes.ToDictionary(fa => fa.Name);
                    eSalesConfiguration.product_attributes = GetProductAttributes().ToArray();
                    eSalesConfiguration.ad_attributes      = GetAdAttributes().ToArray();
                    new XmlSerializer(eSalesConfiguration.GetType()).Serialize(eSalesConfigurationWriter, eSalesConfiguration);
                    eSalesConfigurationWriter.Flush();
                }
        }
Example #10
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="path"></param>
 /// <param name="fileIO"></param>
 /// <param name="serializer"></param>
 /// <returns></returns>
 public static ProjectContainer Open(string path, IFileSystem fileIO, IJsonSerializer serializer)
 {
     using (var stream = fileIO.Open(path))
     {
         return(Open(stream, fileIO, serializer));
     }
 }
Example #11
0
 private void TestRemoteFile(IFileSystem fs, Uri path)
 {
     using (var s = fs.Open(path))
     {
         Assert.Equal(TestByte, s.ReadByte());
     }
 }
Example #12
0
        /// <inheritdoc/>
        async Task <string> IEditorApplication.OnGetImageKeyAsync()
        {
            try
            {
                var dlg = new OpenFileDialog();
                dlg.Filters.Add(new FileDialogFilter()
                {
                    Name = "All", Extensions = { "*" }
                });
                var result = await dlg.ShowAsync(_mainWindow);

                if (result != null)
                {
                    var path = result.FirstOrDefault();
                    using (var stream = _fileIO.Open(path))
                    {
                        var bytes = _fileIO.ReadBinary(stream);
                        var key   = _editor?.Project?.AddImageFromFile(path, bytes);
                        return(key);
                    }
                }
                return(null);
            }
            catch (Exception ex)
            {
                _log?.LogError($"{ex.Message}{Environment.NewLine}{ex.StackTrace}");
                return(null);
            }
        }
 private StrongNameKeyPair ReadStrongNameKeyPair(string filePath)
 {
     using (FileStream keyFile = _fileSystem.Open(filePath, FileMode.Open))
     {
         return(new StrongNameKeyPair(keyFile));
     }
 }
Example #14
0
        public static void Main(string[] args)
        {
            {
                #region Snippet_1
                IFileSystem ram = new MemoryFileSystem();
                IFileSystem os  = FileSystem.OS;
                IFileSystem fp  = new PhysicalFileProvider(AppDomain.CurrentDomain.BaseDirectory).ToFileSystem()
                                  .AddDisposeAction(fs => fs.FileProviderDisposable?.Dispose());
                IFileSystem embedded = new EmbeddedFileSystem(typeof(Composition_Examples).Assembly);

                IFileSystem composition = FileSystemExtensions.Concat(ram, os, fp, embedded)
                                          .AddDisposable(embedded)
                                          .AddDisposable(fp)
                                          .AddDisposable(os);
                #endregion Snippet_1

                #region Snippet_2
                foreach (var entry in composition.VisitTree(depth: 1))
                {
                    Console.WriteLine(entry);
                }
                #endregion Snippet_2

                #region Snippet_3
                using (Stream s = composition.Open("docs.example-file.txt", FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    Console.WriteLine(s.Length);
                }
                #endregion Snippet_3
            }

            {
                #region Snippet_4
                IFileSystem ram1        = new MemoryFileSystem();
                IFileSystem ram2        = new MemoryFileSystem();
                IFileSystem composition = FileSystemExtensions.Concat(ram1, ram2);

                // Create file of 1024 bytes
                ram1.CreateFile("file.txt", new byte[1024]);

                // Create file of 10 bytes
                ram2.CreateFile("file.txt", new byte[10]);

                // Get only one entry size of 1024 bytes.
                composition.PrintTo(Console.Out, format: PrintTree.Format.Default | PrintTree.Format.Length);
                #endregion Snippet_4
            }

            {
                #region Snippet_5
                IFileSystem filesystem  = FileSystem.Application;
                IFileSystem overrides   = new MemoryFileSystem();
                IFileSystem composition = FileSystemExtensions.Concat(
                    (filesystem, null),
                    (overrides, Option.ReadOnly)
                    );
                #endregion Snippet_5
            }
        }
Example #15
0
        /// <summary>
        /// Read fields from text database file format.
        /// </summary>
        /// <param name="path">The fields file path.</param>
        /// <param name="fs">The file system.</param>
        /// <returns>The new instance of the <see cref="IDatabase"/> class</returns>
        IDatabase ITextFieldReader <IDatabase> .Read(string path, IFileSystem fs)
        {
            using var stream = fs.Open(path);
            var fields = ReadInternal(stream).ToList();
            var name   = System.IO.Path.GetFileNameWithoutExtension(path);

            return(_serviceProvider.GetService <IFactory>().FromFields(name, fields));
        }
Example #16
0
 public Stream Open(
     string path,
     FileMode mode,
     FileAccess access
     )
 {
     return(_underlying.Open(path, mode, access));
 }
Example #17
0
        /// <summary>
        /// loads a quake3 level from a stream
        /// </summary>
        /// <param name="fileName">file to load</param>
        /// <returns>level as a mesh</returns>
        public Mesh Load(string fileName)
        {
            Stream stream = fs.Open(fileName);
            Mesh   ret    = Load(stream);

            stream.Close();
            return(ret);
        }
        public LocalFileStream(IFileSystem fileSystem, string relativePath, string contentType)
            : base(contentType)
        {
            Contract.Requires(fileSystem != null);

            RelativePath = relativePath;
            _fileInfo = fileSystem.GetFileInfo(relativePath);
            _stream = new Lazy<Stream>(() => fileSystem.Open(relativePath, FileMode.Open));
        }
 public void Import(bool incremental)
 {
     _indexSystem.Log("Importing products.");
     using (var stream = _fileSystem.Open(_fileHelper.ProductsFile, FileMode.Open, FileAccess.Read))
     {
         _connector.ImportProducts(stream);
     }
     _indexSystem.Log("Done importing products.");
 }
Example #20
0
 private IResource loadFile(string path)
 {
     if (!_fileSystem.FileExists(path))
     {
         Debug.WriteLine($"File system resource pack- failed to find resource at path: {path}");
         return(null);
     }
     return(new AGSResource(path, _fileSystem.Open(path)));
 }
Example #21
0
 /// <summary>
 /// Read fields from text database file format.
 /// </summary>
 /// <param name="path">The fields file path.</param>
 /// <param name="fs">The file system.</param>
 /// <returns>The new instance of the <see cref="Database"/> class</returns>
 Database ITextFieldReader <Database> .Read(string path, IFileSystem fs)
 {
     using (System.IO.Stream stream = fs.Open(path))
     {
         var fields = ReadInternal(stream).ToList();
         var name   = System.IO.Path.GetFileNameWithoutExtension(path);
         return(Database.FromFields(name, fields));
     }
 }
Example #22
0
 public static string ReadTestFile(this IFileSystem fs, string name)
 {
     using (Stream s = fs.Open(name, FileAccess.Read, create: false))
     {
         using (StreamReader sr = new StreamReader(s))
         {
             return(sr.ReadToEnd());
         }
     }
 }
Example #23
0
 public static void WriteTestFile(this IFileSystem fs, string name, Action <BinaryWriter> writer)
 {
     using (Stream s = fs.Open(name, FileAccess.Write, create: true))
     {
         using (BinaryWriter bw = new BinaryWriter(s))
         {
             writer(bw);
         }
     }
 }
Example #24
0
 public static void WriteTestFile(this IFileSystem fs, string name, string content)
 {
     using (Stream s = fs.Open(name, FileAccess.Write, create: true))
     {
         using (StreamWriter sw = new StreamWriter(s))
         {
             sw.Write(content);
         }
     }
 }
Example #25
0
 public static byte[] ReadAllBytes(
     this IFileSystem fileSystem,
     string name)
 {
     using var stream = fileSystem.Open(
               name,
               FileMode.Open,
               FileAccess.Read
               );
     return(stream.ReadAllBytes());
 }
        public Stream Get(string urlPath, SvgMagicOptions options)
        {
            var cachedFile = GetCacheFilePathAndName(urlPath, options);

            if (_fileSystem.Exists(cachedFile))
            {
                return(_fileSystem.Open(cachedFile));
            }

            return(null);
        }
 public void Import(bool incremental)
 {
     if (!incremental)
     {
         _indexSystem.Log("Importing configuration.");
         using (var stream = _fileSystem.Open(_fileHelper.ConfigurationFile, FileMode.Open, FileAccess.Read))
         {
             _connector.ImportConfiguration(stream);
         }
         _indexSystem.Log("Done importing configuration.");
     }
 }
 public void Import(bool incremental)
 {
     if (!incremental && _appConfig.EnableAds)
     {
         _indexSystem.Log("Importing ads.");
         using (var stream = _fileSystem.Open(_fileHelper.AdsFile, FileMode.Open, FileAccess.Read))
         {
             _connector.ImportAds(stream);
         }
         _indexSystem.Log("Done importing ads.");
     }
 }
        public void TestOpenE2E()
        {
            const string Text = "hello";
            var          blob = _container.GetBlockBlobReference(HelloFile);

            UploadFromString(blob, Text);
            Assert.True(CheckBlobExists(blob));
            using (var reader = new StreamReader(_fileSystem.Open(PathToFile(HelloFile))))
            {
                string streamText = reader.ReadToEnd();
                Assert.Equal(Text, streamText);
            }
        }
Example #30
0
        private bool TrySynchroniseResource(
            IReadWriteFileResource sourceResource,
            IFileSystem target,
            IReadWriteFileResource[] targetResources)
        {
            var targetResource = targetResources.FirstOrDefault(
                r => r.RelativePath == sourceResource.RelativePath
                );

            if (!TryDo(sourceResource.OpenForRead, out var sourceStream))
            {
                return(false);
            }

            if (!TryDo(
                    () => target.Open(sourceResource.RelativePath,
                                      FileMode.OpenOrCreate,
                                      FileAccess.ReadWrite
                                      ),
                    out var targetStream)
                )
            {
                return(false);
            }

            NotifySyncStart(sourceResource, targetResource, sourceStream, targetStream);

            var composition = ComposePipeline(sourceStream, targetStream);

            try
            {
                composition.Drain();
                NotifySyncComplete(
                    sourceResource,
                    targetResource ??
                    CreateFileResourcePropertiesFor(
                        target,
                        sourceResource)
                    );
                RecordHistory(sourceResource);
            }
            catch (Exception ex)
            {
                NotifyError(sourceResource, targetResource, ex);
                composition.Dispose();
                return(false);
            }

            return(true);
        }
Example #31
0
        public async Task StoreAsync(LogContext logContext, CancellationToken cancellationToken = default)
        {
            if (!Directory.Exists(DirectoryPath))
            {
                Directory.CreateDirectory(DirectoryPath);
            }

            var filePath = Path.Combine(DirectoryPath, $"{_storeOptions.FileName}");

            await SemaphoreSlim.WaitAsync();

            try
            {
                await using var fileStream = _fileSystem.Open(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);

                bool isBegin = false;

                if (fileStream.Length == 0)
                {
                    isBegin = true;
                    await fileStream.WriteAsync(Utf8StartBracket, cancellationToken);
                }

                fileStream.Seek(isBegin ? 0 : -1, SeekOrigin.End);

                var lastCharacter = (char)fileStream.ReadByte();

                if (lastCharacter == ']')
                {
                    fileStream.Seek(-1, SeekOrigin.End);

                    await fileStream.WriteAsync(Utf8Comma);
                }

                var logAsBytes = JsonSerializer.SerializeToUtf8Bytes(logContext, _options.JsonSerializerOptions);

                await fileStream.WriteAsync(logAsBytes, cancellationToken);

                await fileStream.WriteAsync(Utf8EndBracket, cancellationToken);
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
            }
            finally
            {
                SemaphoreSlim.Release();
            }
        }
Example #32
0
 public async Task Save(byte[] contents)
 {
     _lastKnownChanges.OnNext(contents);
     try
     {
         using (var file = _fs.Open(_path, FileMode.Create, FileAccess.Write, FileShare.Read))
         {
             await file.WriteAllBytesAsync(contents);
         }
         _errorsDuringSaving.OnNext(Optional.None());
     }
     catch (Exception e)
     {
         _errorsDuringSaving.OnNext(e);
     }
 }
Example #33
0
 private void TestRemoteFile(IFileSystem fs, Uri path)
 {
     using (var s = fs.Open(path))
     {
         Assert.Equal(TestByte, s.ReadByte());
     }
 }
Example #34
0
 public static GitPackIndex Open(IFileSystem fs, string path)
 {
     return Open(access => fs.Open(path, access, create: false));
 }