private async Task ValidateConfiguration() { Logger.LogInformation("Starting configuration validation"); foreach (IConfigurationValidator validator in ClientHelpers.GetInstances <IConfigurationValidator>()) { var stopwatch = Stopwatch.StartNew(); Logger.LogInformation(LogDestination.File, $"Starting configuration validation for: {validator.Name}"); await validator.Validate(context); stopwatch.Stop(); Logger.LogInformation(LogDestination.File, $"Completed configuration validation for: {validator.Name} in {stopwatch.Elapsed.TotalSeconds}s"); } Logger.LogInformation("Completed configuration validation"); }
private async Task TargetWorkItemValidation() { Logger.LogInformation("Starting target work item migration status"); foreach (ITargetValidator validator in ClientHelpers.GetInstances <ITargetValidator>()) { var stopwatch = Stopwatch.StartNew(); Logger.LogInformation(LogDestination.File, $"Starting target work item migration status for: {validator.Name}"); await validator.Validate(context); stopwatch.Stop(); Logger.LogInformation(LogDestination.File, $"Completed target work item migration status for: {validator.Name} in {stopwatch.Elapsed.TotalSeconds}s"); } Logger.LogInformation("Completed target work item migration status"); }
private async Task ValidateWorkItemMetadata() { Logger.LogInformation("Starting work item metadata validation"); var validators = ClientHelpers.GetInstances <IWorkItemValidator>(); foreach (var validator in validators) { await validator.Prepare(context); } var totalNumberOfBatches = ClientHelpers.GetBatchCount(context.WorkItemIdsUris.Count, Constants.BatchSize); await context.WorkItemIdsUris.Keys.Batch(Constants.BatchSize).ForEachAsync(context.Config.Parallelism, async(workItemIds, batchId) => { var stopwatch = Stopwatch.StartNew(); Logger.LogInformation(LogDestination.File, $"Work item metadata validation batch {batchId} of {totalNumberOfBatches}: Starting"); var workItems = await WorkItemTrackingHelpers.GetWorkItemsAsync( context.SourceClient.WorkItemTrackingHttpClient, workItemIds, context.RequestedFields); foreach (var validator in validators) { Logger.LogInformation(LogDestination.File, $"Work item metadata validation batch {batchId} of {totalNumberOfBatches}: {validator.Name}"); foreach (var workItem in workItems) { await validator.Validate(context, workItem); } } stopwatch.Stop(); Logger.LogInformation(LogDestination.File, $"Work item metadata validation batch {batchId} of {totalNumberOfBatches}: Completed in {stopwatch.Elapsed.TotalSeconds}s"); }); Logger.LogInformation("Completed work item metadata validation"); }