コード例 #1
0
        public SftpActor(IClientFactory clientFactory)
        {
            _clientFactory      = clientFactory;
            _fileStreamProvider = _clientFactory.CreateFileStreamProvider();

            Disconnected();
        }
コード例 #2
0
 public FileSystemStore(
     IStoreBackend <Guid, Metadata> metadataRepository
     , IStoreBackend <Guid, Upload> storeBackend
     , IFileStreamProvider <Guid, StreamAdapter> fileStreamProvider) :
     base(metadataRepository, storeBackend, fileStreamProvider)
 {
 }
コード例 #3
0
 public JobState(IFileStreamProvider fileStreamProvider, IFileLineCounter fileLineCounter, IFileProcessor fileProcessor, IPercentageCalculator percentageCalculator)
 {
     _fileStreamProvider   = fileStreamProvider;
     _fileLineCounter      = fileLineCounter;
     _fileProcessor        = fileProcessor;
     _percentageCalculator = percentageCalculator;
 }
コード例 #4
0
 protected Store(IStoreBackend <TKey, TMeta> metadataRepository
                 , IStoreBackend <TKey, TIn> storeBackend
                 , IFileStreamProvider <TKey, StreamAdapter> fileStreamProvider)
 {
     metaRepository          = metadataRepository;
     this.storeBackend       = storeBackend;
     this.fileStreamProvider = fileStreamProvider;
 }
コード例 #5
0
 /************************ Construction ***********************************/
 /*----------------------- WritableXmlConfigurationSource ----------------*/
 /// <summary>
 ///
 /// </summary>
 /// <param name="writer"></param>
 /// <param name="fileStreamProvider"></param>
 public WritableXmlConfigurationSource(
     IXmlConfigurationWriter writer,
     IFileStreamProvider fileStreamProvider)
 {
     Writer         = writer ?? throw new ArgumentNullException(nameof(writer));
     StreamProvider = fileStreamProvider ??
                      throw new ArgumentNullException(nameof(fileStreamProvider));
     return;
 } /* End of Function - WritableXmlConfigurationSource */
コード例 #6
0
        // Get a stream binder from a resolved path
        private async Task <IFileStreamProvider> GetStreamHelper(string path)
        {
            TAttribute clone = CloneAttributeWithResolvedPath(path);

            TFile nativeFile = await this._strategyBuilder(clone);

            var func = this._converterManager.GetConverter <TFile, IFileStreamProvider, TAttribute>();
            IFileStreamProvider strategy = func(nativeFile, null, null);

            return(strategy);
        }
コード例 #7
0
 public ConfigurationProvider(IFileStreamProvider fileStreamProvider)
 {
     _configurationItems =
         Assembly.GetExecutingAssembly().Location
         .Map(Path.GetDirectoryName)
         .Map(x => Path.Combine(x, "raindrop.config.json"))
         .Map(fileStreamProvider.OpenFileForRead)
         .Map(x => new StreamReader(x))
         .Use(x => x.ReadToEnd())
         .Map(JObject.Parse)
         .Properties()
         .ToDictionary(k => k.Name, v => v);
 }
コード例 #8
0
        // Get a stream binder from a resolved path
        private async Task <IFileStreamProvider> GetStreamHelper(string path)
        {
            TAttribute clone = JsonConvert.DeserializeObject <TAttribute>(JsonConvert.SerializeObject(_source));

            clone.Path = path;

            TFile nativeFile = await this._strategyBuilder(clone);

            var func = this._converterManager.GetConverter <TFile, IFileStreamProvider, TAttribute>();
            IFileStreamProvider strategy = func(nativeFile, null, null);

            return(strategy);
        }
コード例 #9
0
        public async Task <IValueProvider> BindAsync(object value, ValueBindingContext context)
        {
            string path = (string)value;
            IFileStreamProvider strategy = await GetStreamHelper(path);

            var outTuple = await strategy.OpenWriteStreamAsync();

            Stream outStream = outTuple.Item1;
            Func <object, Task> completedFunc = outTuple.Item2;

            // Bind to 'out string'
            var valueProvider = new GenericOutFileValueProvider(outStream, completedFunc);

            return(valueProvider);
        }
コード例 #10
0
ファイル: MemoryFile.cs プロジェクト: ZhaoYngTest01/WebApi
        public MemoryFile(string name, IDirectory directory, IFileStreamProvider streamProvider = null)
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException("name");
            }

            Name = name;
            Directory = directory;
            Extension = ParseExtension(name);
            if (streamProvider == null)
            {
                streamProvider = new MemoryStreamProvider();
            }
            StreamProvider = streamProvider;
        }
コード例 #11
0
ファイル: MemoryFile.cs プロジェクト: tibold/ODataWebApi
        public MemoryFile(string name, IDirectory directory, IFileStreamProvider streamProvider = null)
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException("name");
            }

            Name      = name;
            Directory = directory;
            Extension = ParseExtension(name);
            if (streamProvider == null)
            {
                streamProvider = new MemoryStreamProvider();
            }
            StreamProvider = streamProvider;
        }
コード例 #12
0
 private IList <T> ParseCSVFile <T>(IFileStreamProvider fileStreamProvider, string filePath)
     where T : class, new()
 {
     using (var fileStream = fileStreamProvider.OpenRead(filePath))
         using (var textReader = new StreamReader(
                    fileStream,
                    new UTF8Encoding(false),
                    detectEncodingFromByteOrderMarks: false,
                    bufferSize: 10 * 1024,
                    leaveOpen: true))
             using (var csvReader = new CsvReader(textReader, leaveOpen: true))
             {
                 csvReader.Configuration.RegisterClassMap(csvReader.Configuration.AutoMap <T>());
                 return(csvReader.GetRecords <T>().ToList());
             }
 }
コード例 #13
0
        public FileGrowthCsvReaderProvider(IConfiguration configuration, IFileStreamProvider fileStreamProvider)
        {
            var pwd           = configuration["WorkingDirectory"];
            var fileIDPath    = Path.Combine(pwd, configuration["FileIDName"]);
            var fileStatsPath = Path.Combine(pwd, configuration["FileStatsName"]);

            FileMap = (
                from dto in ParseCSVFile <FileMetaDataDto>(fileStreamProvider, fileIDPath)
                select new FileMetaData(dto.ID, dto.Name)
                ).ToDictionary(p => p.FileID, p => p);

            FileSizeStatsMap = (
                from dto in ParseCSVFile <FileSizeStatsDto>(fileStreamProvider, fileStatsPath)
                group dto by dto.FileID into g
                select new FileSizeStats(g.Key, g.ToDictionary(p => p.Timestamp, p => p.SizeInBytes))
                ).ToDictionary(p => p.FileID, p => p);
        }
コード例 #14
0
        } /* End of Function - AddWritableXml */

        /*----------------------- AddWritableXml --------------------------------*/
        /// <summary>
        /// Adds a writable XML configuration source, using defaults.
        /// </summary>
        /// <param name="builder">Builder to add source to.</param>
        /// <param name="fileProvider">File provider to use.</param>
        /// <param name="path">Path of the XML file.</param>
        /// <param name="optional">Determines if loading the file is optional.</param>
        /// <param name="reloadOnChange">
        /// Determines if data should reload on file change.
        /// </param>
        /// <param name="writer">
        /// Service used to write the data to a stream.
        /// </param>
        /// <returns>
        /// The configuration builder.
        /// </returns>
        public static IConfigurationBuilder AddWritableXml(
            this IConfigurationBuilder builder,
            IFileProvider fileProvider,
            string path,
            bool optional,
            bool reloadOnChange,
            IFileStreamProvider fileStreamProvider,
            IXmlConfigurationWriter writer)
        {
            // Build our source
            var source = new WritableXmlConfigurationSource(writer, fileStreamProvider)
            {
                FileProvider   = fileProvider,
                Path           = path,
                Optional       = optional,
                ReloadOnChange = reloadOnChange
            };

            // Resolve the file provider
            source.ResolveFileProvider();

            // And finally add it back to the configuration builder.
            return(builder.Add(source));
        } /* End of Function - AddWritableXml */
コード例 #15
0
 public JsonConverter(IFileStreamProvider fileStreamProvider)
 {
     _fileStreamProvider = fileStreamProvider;
 }
コード例 #16
0
        public async Task <IValueProvider> BindAsync(object value, ValueBindingContext context)
        {
            string path = (string)value;

            IFileStreamProvider strategy = await GetStreamHelper(path);

            var targetType = _parameter.ParameterType;

            object userObj = null;
            Func <object, Task> onComplete;
            ConstantObj         valueProvider = null;

            if (_source.Access == FileAccess.Write)
            {
                var tuple = await strategy.OpenWriteStreamAsync();

                var writeStream    = tuple.Item1;
                var saveStreamFunc = tuple.Item2;

                if (targetType == typeof(Stream) || (_parameter.IsOut && targetType == typeof(Stream).MakeByRefType()))
                {
                    userObj    = writeStream;
                    onComplete = saveStreamFunc;
                }
                else if (targetType == typeof(TextWriter) || (_parameter.IsOut && targetType == typeof(TextWriter).MakeByRefType()))
                {
                    var tw = new StreamWriter(writeStream);
                    userObj    = tw;
                    onComplete = async obj =>
                    {
                        tw.Flush();
                        await saveStreamFunc(obj);
                    };
                }
                else if (targetType == typeof(StreamWriter) || (_parameter.IsOut && targetType == typeof(StreamWriter).MakeByRefType()))
                {
                    var tw = new StreamWriter(writeStream);
                    userObj    = tw;
                    onComplete = async obj =>
                    {
                        tw.Flush();
                        await saveStreamFunc(obj);
                    };
                }
                else if (targetType == typeof(byte[]) || (_parameter.IsOut && targetType == typeof(byte[]).MakeByRefType()))
                {
                    userObj    = writeStream;
                    onComplete = saveStreamFunc;
                }
                else
                {
                    throw new InvalidOperationException("Unsupported type:" + targetType.FullName);
                }
            }
            else
            {
                var readStream = await strategy.OpenReadStreamAsync();

                onComplete = obj => Task.FromResult(0); // Nop
                if (targetType == typeof(Stream))
                {
                    userObj = readStream;
                }
                else if (targetType == typeof(TextReader))
                {
                    userObj = new StreamReader(readStream);
                }
                else if (targetType == typeof(StreamReader))
                {
                    userObj = new StreamReader(readStream);
                }
                else if (targetType == typeof(string))
                {
                    userObj = new StreamReader(readStream).ReadToEnd();
                }
                else if (targetType == typeof(byte[]) && readStream is MemoryStream)
                {
                    userObj = ((MemoryStream)readStream).ToArray();
                }
                else
                {
                    throw new InvalidOperationException("Unsupported type:" + targetType.FullName);
                }
            }

            valueProvider = new ConstantObj
            {
                Type        = targetType,
                Value       = userObj,
                OnCompleted = onComplete
            };
            return(valueProvider);
        }
コード例 #17
0
 protected Store(
     IStoreBackend <Guid, Metadata> metadataRepository
     , IStoreBackend <Guid, TIn> storeBackend
     , IFileStreamProvider <Guid, StreamAdapter> fileStreamProvider) : base(metadataRepository, storeBackend, fileStreamProvider)
 {
 }
コード例 #18
0
 public FileGrowthCsvWriterProvider(IConfiguration configuration, IFileStreamProvider fileStreamProvider)
 {
     Configuration      = configuration;
     FileStreamProvider = fileStreamProvider;
 }
コード例 #19
0
 public FileLineCounter(IFileStreamProvider fileStreamProvider)
 {
     _fileStreamProvider = fileStreamProvider;
 }
コード例 #20
0
 public FileProcessor(IConfigurationState configurationState, IFileStreamProvider fileStreamProvider, IPercentageCalculator percentageCalculator)
 {
     _configurationState   = configurationState;
     _fileStreamProvider   = fileStreamProvider;
     _percentageCalculator = percentageCalculator;
 }
コード例 #21
0
 public InputDatasetFactory(IFileStreamProvider fileStreamProvider)
 {
     _fileStreamProvider = fileStreamProvider;
 }
コード例 #22
0
 public StringFileReaderWriter(IFileStreamProvider streamProvider)
 {
     _streamProvider = streamProvider;
 }