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); }
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); }