示例#1
0
        private void ConfigureScopedServices(IServiceCollection services)
        {
            // Register service to seed test data
            services.TryAddScoped <DataSeedHelper>();

            // Register core scoped services
            services.TryAddScoped <IUserService, UserService>();
            services.TryAddScoped <IGraphQlService, GraphQlService>();
            services.TryAddScoped <ICrudService, CrudService>();
            services.TryAddScoped <ISecurityService, SecurityService>();
            services.TryAddScoped <IIdentityService, IdentityService>();
            services.TryAddScoped <IEmailService, EmailService>();
            services.TryAddScoped <IAuditService, AuditService>();
            services.TryAddScoped <IXsrfService, XsrfService>();

            // Register context filters
            services.TryAddScoped <AntiforgeryFilter>();
            services.TryAddScoped <XsrfActionFilter>();

            // Configure the file system provider to use
            var storageOptions = new StorageProviderConfiguration();

            Configuration.GetSection("StorageProvider").Bind(storageOptions);
            switch (storageOptions.Provider)
            {
            case StorageProviders.S3:
                services.TryAddScoped <IUploadStorageProvider, S3StorageProvider>();
                break;

            case StorageProviders.FILE_SYSTEM:
            default:
                services.TryAddScoped <IUploadStorageProvider, FileSystemStorageProvider>();
                break;
            }
        }
示例#2
0
        public IFilePartyConfiguration AddModule <TModule>(StorageProviderConfiguration <TModule> defaultStorageProviderConfiguration)
            where TModule : class, IFilePartyModule, new()
        {
            // register module config with core
            var fpServiceCollection = GetServiceCollection();
            var moduleConfig        = new FilePartyModuleConfiguration <TModule>(defaultStorageProviderConfiguration);

            fpServiceCollection.AddSingleton <IFilePartyModuleConfiguration>(moduleConfig);
            fpServiceCollection.AddSingleton(x => moduleConfig);

            // register module with module config
            var module = new TModule();

            moduleConfig.AttachModule(module);

            // get module service collection and register dependencies
            var dependencies            = FileParty.GetModuleDependencies <TModule>();
            var moduleServiceCollection = moduleConfig.GetServiceCollection();

            foreach (var d in dependencies)
            {
                moduleServiceCollection.Add(d);
            }

            return(this);
        }
示例#3
0
        public static void Main(string[] args)
        {
            IConfiguration conf = new ConfigurationBuilder()
                                  .AddJsonFile($"appsettings.json")
                                  .AddJsonFile($"appsettings.local.json", optional: true)
                                  .Build();

            StorageProviderConfiguration.Init(conf);

            var _server = new FtpServer(new AzureFileSystemFactory(conf), conf);

            _server.NewConnection += nId =>
                                     Console.WriteLine("Connection: {0} accepted", nId);

            // This is a sample worker implementation. Replace with your logic.
            Console.WriteLine("Information: FTPRole entry point called");

            while (true)
            {
                if (_server.Started)
                {
                    Thread.Sleep(10000);
                    Console.WriteLine("Information: Server is alive");
                }
                else
                {
                    _server.Start();
                    Console.WriteLine("Control: Server starting");
                }
            }
        }
 public AzureBlobStorageProvider(StorageProviderConfiguration <AzureModule> configuration)
 {
     if (configuration is AzureBlobBaseConfiguration config)
     {
         _connectionString   = config.ConnectionString;
         _containerName      = config.ContainerName;
         _allowModifications = config.AllowModificationsDuringRead;
     }
     DirectorySeparatorCharacter = configuration.DirectorySeparationCharacter;
 }
示例#5
0
        public async Task <IAsyncStorageProvider> GetAsyncStorageProvider <TModule>(StorageProviderConfiguration <TModule> configuration) where TModule : class, IFilePartyModule, new()
        {
            if (!(_moduleConfigurations.LastOrDefault(f => f is FilePartyModuleConfiguration <TModule>)
                  is FilePartyModuleConfiguration <TModule> modCfg))
            {
                throw Errors.SPNotFound;
            }

            var storageProvider = await modCfg.GetAsyncStorageProvider(configuration);

            storageProvider.WriteProgressEvent += _relay.RelayWriteProgressEvent;
            return(storageProvider);
        }
        internal Task <IAsyncStorageProvider> GetAsyncStorageProvider(StorageProviderConfiguration <TModule> configuration)
        {
            var sc = new ServiceCollection {
                GetServiceCollection()
            };
            var config = configuration ?? _defaultConfiguration;

            sc.AddSingleton <StorageProviderConfiguration <TModule> >(x => config);
            sc.AddSingleton <IStorageProviderConfiguration>(x => config);
            using (var sp = sc.BuildServiceProvider())
            {
                var service = sp.GetRequiredService <IAsyncStorageProvider>();
                return(Task.FromResult(service));
            }
        }
示例#7
0
        public void ChangeDefaultModuleConfig <TModule>(StorageProviderConfiguration <TModule> configuration = null)
            where TModule : class, IFilePartyModule, new()
        {
            _filePartyConfiguration.DefaultModuleType = typeof(TModule);

            if (configuration == null)
            {
                return;
            }

            if (!(_moduleConfigurations
                  .FirstOrDefault(f =>
                                  f is FilePartyModuleConfiguration <TModule>)
                  is FilePartyModuleConfiguration <TModule> moduleConfiguration))
            {
                throw Errors.SPNotFound;
            }

            moduleConfiguration.SetDefaultConfiguration(configuration);
        }
示例#8
0
 public TestStorageProvider2(StorageProviderConfiguration <TestModule2> configuration) : base(configuration)
 {
 }
示例#9
0
 public IStorageWriter GetStorageWriter <TModule>(StorageProviderConfiguration <TModule> configuration) where TModule : class, IFilePartyModule, new()
 {
     return(GetStorageProvider <TModule>());
 }
 /// <summary>
 /// Constructor for Storage Provider.
 /// </summary>
 /// <param name="configuration">Configuration for storage providers (writers and readers) in a module</param>
 protected BaseAsyncStorageProvider(StorageProviderConfiguration <TModule> configuration)
 {
     Debug.WriteLine($"{GetType().Name} - {_instanceId}: Created at {DateTime.UtcNow:O}");
     Configuration = configuration;
 }
示例#11
0
 public FileSystemStorageProvider(StorageProviderConfiguration <FileSystemModule> config)
 {
     _config = config;
     DirectorySeparatorCharacter = config.DirectorySeparationCharacter;
 }
示例#12
0
 public FTPStorageProvider(StorageProviderConfiguration <FTPModule> config)
 {
     _config = config;
 }
 public virtual void Dispose()
 {
     _config = null;
 }
示例#14
0
 public TestAsyncStorageProvider(StorageProviderConfiguration <TestModule> configuration) : base(configuration)
 {
 }
 internal void SetDefaultConfiguration(StorageProviderConfiguration <TModule> defaultConfiguration)
 {
     _defaultConfiguration = defaultConfiguration;
 }
 public FilePartyModuleConfiguration(StorageProviderConfiguration <TModule> defaultConfiguration)
 {
     SetDefaultConfiguration(defaultConfiguration);
 }
示例#17
0
 public async Task <IAsyncStorageWriter> GetAsyncStorageWriter <TModule>(StorageProviderConfiguration <TModule> configuration) where TModule : class, IFilePartyModule, new()
 {
     return(await GetAsyncStorageProvider(configuration));
 }
示例#18
0
 IPersistenceProvider Create(StorageProviderConfiguration configuration)
 {
     return(null);
 }
 public S3StorageProvider(StorageProviderConfiguration <AWS_S3Module> awsConfiguration)
 {
     _config = awsConfiguration;
 }