/// <summary> /// Creates a <see cref="S3XmlRepository"/> with keys stored at the given bucket & optional key prefix. /// </summary> /// <param name="s3Client">The S3 client.</param> /// <param name="config">The configuration object specifying how to write to S3.</param> /// <param name="logger">An optional <see cref="ILogger"/> to provide logging.</param> /// <param name="mockWrapper">Wrapper object to ensure unit testing is feasible.</param> public S3XmlRepository(IAmazonS3 s3Client, IOptions <S3XmlRepositoryConfig> config, ILogger <S3XmlRepository> logger, IMockingWrapper mockWrapper) { this.s3Client = s3Client ?? throw new ArgumentNullException(nameof(s3Client)); this.config = config ?? throw new ArgumentNullException(nameof(config)); this.logger = logger; this.mockWrapper = mockWrapper; }
/// <summary> /// Creates a <see cref="S3XmlRepository"/> with keys stored at the given bucket & optional key prefix. /// </summary> /// <param name="s3Client">The S3 client.</param> /// <param name="config">The configuration object specifying how to write to S3.</param> /// <param name="services">An optional <see cref="IServiceProvider"/> to provide ancillary services.</param> /// <param name="mockWrapper">Wrapper object to ensure unit testing is feasible.</param> public S3XmlRepository(IAmazonS3 s3Client, IS3XmlRepositoryConfig config, IServiceProvider services, IMockingWrapper mockWrapper) { this.s3Client = s3Client ?? throw new ArgumentNullException(nameof(s3Client)); Config = config ?? throw new ArgumentNullException(nameof(config)); logger = services?.GetService <ILoggerFactory>()?.CreateLogger <S3XmlRepository>(); this.mockWrapper = mockWrapper; }