public SharpZipArchiver(
     ITempFileStreamFactory tempFileStreamFactory,
     TempFileOptions tempFileOptions)
 {
     _tempFileStreamFactory = tempFileStreamFactory;
     _tempFileOptions       = tempFileOptions;
     _arrayPool             = ArrayPool <byte> .Create();
 }
        public TempFilesInitService(
            TempFileOptions tempFileOptions,
            ILogger <TempFilesInitService> logger)
        {
            _tempFileOptions = tempFileOptions ?? throw new ArgumentNullException(nameof(tempFileOptions));
            tempFileOptions.AssertValid();

            _logger = logger ?? throw new ArgumentNullException(nameof(logger));
        }
        public TempFileStreamFactory(TempFileOptions tempFileOptions)
        {
            if (String.IsNullOrWhiteSpace(tempFileOptions.TempPath))
            {
                throw new ArgumentNullException(nameof(tempFileOptions.TempPath));
            }

            _tempFileOptions = tempFileOptions ?? throw new ArgumentNullException(nameof(tempFileOptions));

            tempFileOptions.AssertValid();
        }
        public TempDirCleaner(ILogger <TempDirCleaner> logger, TempFileOptions options)
        {
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            _frequency = TimeSpan.FromHours(options.CleaningFrequencyHours);
            _ttl       = TimeSpan.FromHours(options.FileTtlHours);
            _tempPath  = options.TempPath;
        }
Beispiel #5
0
        /// <summary>
        /// Adds all services for working with temp file streams to services.
        /// </summary>
        public static IServiceCollection AddTempFileServices(
            this IServiceCollection services,
            TempFileOptions tempFileOptions)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }
            if (tempFileOptions == null)
            {
                throw new ArgumentNullException(nameof(tempFileOptions));
            }

            tempFileOptions.AssertValid();

            services.TryAddSingleton(tempFileOptions);
            services.TryAddSingleton <ITempFileStreamFactory, TempFileStreamFactory>();
            services.AddAppInitializer <TempFilesInitService>();

            return(services);
        }
Beispiel #6
0
        /// <summary>
        /// Adds temp directory cleaner as hosted service.
        /// </summary>
        public static IServiceCollection AddTempDirCleaner(this IServiceCollection services, TempFileOptions tempFileOptions)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }
            if (tempFileOptions == null)
            {
                throw new ArgumentNullException(nameof(tempFileOptions));
            }

            tempFileOptions.AssertValid();

            services.TryAddSingleton(tempFileOptions);
            services.AddHostedService <TempDirCleaner>();

            return(services);
        }
Beispiel #7
0
        /// <summary>
        /// Adds SharpZip archiver to services.
        /// </summary>
        public static IServiceCollection AddSharpZipArchiver(this IServiceCollection services, TempFileOptions tempFileOptions)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }
            if (tempFileOptions == null)
            {
                throw new ArgumentNullException(nameof(tempFileOptions));
            }

            services.TryAddSingleton <IArchiver, SharpZipArchiver>();

            // requires temp file subsystem
            services.AddTempFileServices(tempFileOptions);

            return(services);
        }