/// <summary> /// Creates a new instance of <see cref="IDataSinkAdapter" /> with the provided configuration. /// </summary> /// <param name="configuration">Data sink adapter configuration.</param> /// <param name="context">Data transfer operation context.</param> /// <param name="cancellation">Cancellation token.</param> /// <returns>Task that represents asynchronous create operation.</returns> public async Task <IDataSinkAdapter> CreateAsync(IJsonFileSinkAdapterConfiguration configuration, IDataTransferContext context, CancellationToken cancellation) { Guard.NotNull("configuration", configuration); return(new JsonFileSinkAdapter( await SinkStreamProvidersFactory.Create(configuration.File, configuration.Overwrite).CreateWriter(cancellation), JsonSerializersFactory.Create(configuration.Prettify))); }
public async Task <ITransferStatistics> Create(IErrorDetailsProvider errorDetailsProvider, ITransferStatisticsConfiguration configuration, CancellationToken cancellation) { Guard.NotNull("configuration", configuration); return(String.IsNullOrEmpty(configuration.ErrorLog) ? (ITransferStatistics) new InMemoryTransferStatistics(errorDetailsProvider) : new CsvErrorLogTransferStatistics( await SinkStreamProvidersFactory.Create( configuration.ErrorLog, configuration.OverwriteErrorLog).CreateWriter(cancellation), errorDetailsProvider)); }
public async Task <ITransferStatistics> Create(IErrorDetailsProvider errorDetailsProvider, ITransferStatisticsConfiguration configuration, IReadOnlyDictionary <string, string> destConfiguration, CancellationToken cancellation) { Guard.NotNull("configuration", configuration); Guard.NotNull("destConfiguration", destConfiguration); if (configuration.EnableCosmosTableLog) { return(new CosmosDBErrorLogTransferStatistics(errorDetailsProvider, destConfiguration, configuration.CosmosTableLogConnectionString, cancellation)); } return(String.IsNullOrEmpty(configuration.ErrorLog) ? (ITransferStatistics) new InMemoryTransferStatistics(errorDetailsProvider) : new CsvErrorLogTransferStatistics( new StreamWriter( await SinkStreamProvidersFactory.Create(configuration.ErrorLog, false, configuration.OverwriteErrorLog) .CreateStream(cancellation)), errorDetailsProvider)); }