Пример #1
0
        public static IFilehookBuilder AddMetadata(this IFilehookBuilder builder, Action <ModelBuilder> setupAction)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (setupAction == null)
            {
                throw new ArgumentNullException(nameof(setupAction));
            }

            var modelBuilder = new ModelBuilder();

            setupAction(modelBuilder);

            builder.Services.AddSingleton(modelBuilder.Metadata);

            builder.Services.AddTransient <IFileStorageNameResolver, MetadataFileStorageNameResolver>();
            builder.Services.AddTransient <IFileStyleResolver, MetadataFileStyleResolver>();
            builder.Services.AddTransient <IParamNameResolver, MetadataParamNameResolver>();
            builder.Services.AddTransient <IEntityIdResolver, MetadataEntityIdResolver>();

            return(builder);
        }
Пример #2
0
        public static IFilehookBuilder AddS3Storage(this IFilehookBuilder builder, Action <S3StorageOptions> setupAction = null)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (setupAction != null)
            {
                builder.Services.Configure(setupAction);
            }

            builder.Services.Configure(setupAction);

            builder.Services.AddTransient <IFileStorage, S3Storage>();
            builder.Services.AddScoped <IAmazonS3>(x =>
            {
                var options = x.GetRequiredService <IOptions <S3StorageOptions> >().Value;

                var client = new AmazonS3Config();

                if (options.Region != null)
                {
                    client.RegionEndpoint = RegionEndpoint.GetBySystemName(options.Region);
                }

                return(new AmazonS3Client(options.AccessKeyId, options.SecretAccessKey, client));
            });

            return(builder);
        }
        public static IFilehookBuilder AddKebabLocationParamFormatter(this IFilehookBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            builder.Services.AddTransient <ILocationParamFormatter, KebabLocationParamFormatter>();

            return(builder);
        }
        public static IFilehookBuilder AddDataAnnotations(this IFilehookBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            builder.Services.AddTransient <IFileStorageNameResolver, AttributeFileStorageNameResolver>();
            builder.Services.AddTransient <IFileStyleResolver, AttributeFileStyleResolver>();
            builder.Services.AddTransient <IParamNameResolver, AttributeParamNameResolver>();
            builder.Services.AddTransient <IEntityIdResolver, AttributeEntityIdResolver>();

            return(builder);
        }
        public static IFilehookBuilder AddSftpStorage(this IFilehookBuilder builder, Action <SftpStorageOptions> setupAction = null)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (setupAction != null)
            {
                builder.Services.Configure(setupAction);
            }

            builder.Services.AddTransient <IFileStorage, SftpStorage>();

            return(builder);
        }
        public static IFilehookBuilder AddFallbackFileProccessor(this IFilehookBuilder builder, Action <FallbackFileProccessorOptions> setupAction = null)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (setupAction != null)
            {
                builder.Services.Configure(setupAction);
            }

            builder.Services.AddTransient <IFileProccessor, FallbackFileProccessor>();

            return(builder);
        }
        public static IFilehookBuilder AddRegularLocationTemplateParser(this IFilehookBuilder builder, Action <RegularLocationTemplateParserOptions> setupAction = null)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (setupAction != null)
            {
                builder.Services.Configure(setupAction);
            }

            builder.Services.AddTransient <ILocationTemplateParser, RegularLocationTemplateParser>();

            return(builder);
        }
        public static IFilehookBuilder AddImageSharpImageProccessor(this IFilehookBuilder builder, Action <ImageSharpImageProccessorOptions> action = null)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (action != null)
            {
                builder.Services.Configure(action);
            }

            builder.Services.TryAddTransient <IImageTransformer, ImageSharpImageTransformer>();
            builder.Services.AddTransient <IFileProccessor, ImageSharpImageProccessor>();

            return(builder);
        }