private static async Task <string> GenerateCoursesExportForProvider( ILogger log, ICourseCollectionService courseCollectionService, StringBuilder logFile, IMiragtionProviderItem mpItem, CloudBlobContainer containerExporter, string containerNameExporter) { logFile.AppendLine($"Conditional logic for {mpItem} is True."); logFile.AppendLine($"\tAttempting to get courses' data for: {mpItem}"); var courses = await courseCollectionService.GetAllLiveCoursesAsJsonForUkprnAsync(mpItem.Ukprn); logFile.AppendLine($"\tGot courses' data for: {mpItem}"); if (courses != "[]") { logFile.AppendLine($"\t\tHas courses' data for: {mpItem}"); var coursesFileName = $"{DateTime.Today.ToString("yyyyMMdd")}\\Generated\\Courses_for_Provider_{mpItem.Ukprn}_{DateTime.Now.ToString("yyyy-MM-ddTHH-mm-ss")}.json"; logFile.AppendLine($"\t\tGot reference to block blob containers for file: {coursesFileName}"); var coursesBlob = containerExporter.GetBlockBlobReference(coursesFileName); logFile.AppendLine( $"\t\tAttempting to upload file {coursesFileName} to blob container {containerNameExporter}"); await coursesBlob.UploadTextAsync(courses); log.LogInformation($"uploaded {coursesFileName}"); logFile.AppendLine($"\t\tUploaded file {coursesFileName} to blob container {containerNameExporter}"); return(coursesFileName); } else { logFile.AppendLine($"\t\tHas no courses' data for: {mpItem}"); return(null); } }
private static async Task <IEnumerable <string> > CheckForProviderUpdates( ILogger log, ICourseCollectionService courseCollectionService, IVenueCollectionService venueCollectionService, StringBuilder logFile, IMiragtionProviderItem mpItem, DateTime fromDate, CloudBlobContainer containerExporter, string containerNameExporter) { var fileNames = new List <string>(); logFile.AppendLine($"Attempting to get conditional data for: {mpItem}"); var hasTodaysDate = mpItem.DateMigrated.Date == DateTime.Today; var dateMigratedIsInThePast = mpItem.DateMigrated.Date < DateTime.Today; var hasCreatedCourses = await courseCollectionService.HasCoursesBeenCreatedSinceAsync(mpItem.Ukprn, fromDate); var hasCreatedCourseRuns = await courseCollectionService.HasCourseRunsBeenCreatedSinceAsync(mpItem.Ukprn, fromDate); var hasUpdatedCourses = await courseCollectionService.HasCoursesBeenUpdatedSinceAsync(mpItem.Ukprn, fromDate); var hasUpdatedCourseRuns = await courseCollectionService.HasCourseRunsBeenUpdatedSinceAsync(mpItem.Ukprn, fromDate); var hasDeletedCourses = await courseCollectionService.HasCoursesBeenDeletedSinceAsync(mpItem.Ukprn, fromDate); var hasDeletedCourseRuns = await courseCollectionService.HasCourseRunsBeenDeletedSinceAsync(mpItem.Ukprn, fromDate); var hasUpdatedVenues = await venueCollectionService.HasBeenAnUpdatedSinceAsync(mpItem.Ukprn, fromDate); logFile.AppendLine($"Got conditional data for: {mpItem}"); logFile.AppendLine($"\tHas today's date: {hasTodaysDate}"); logFile.AppendLine($"\tDate migrated is in the past: {dateMigratedIsInThePast}"); logFile.AppendLine($"\tHas created Courses: {hasCreatedCourses}"); logFile.AppendLine($"\tHas created CourseRuns: {hasCreatedCourseRuns}"); logFile.AppendLine($"\tHas updated Courses: {hasUpdatedCourses}"); logFile.AppendLine($"\tHas updated CourseRuns: {hasUpdatedCourseRuns}"); logFile.AppendLine($"\tHas deleted Courses: {hasDeletedCourses}"); logFile.AppendLine($"\tHas deleted CourseRuns: {hasDeletedCourseRuns}"); logFile.AppendLine($"\tHas updated Venues: {hasUpdatedVenues}"); logFile.AppendLine($"End of conditional data for: {mpItem}"); if (hasTodaysDate || (dateMigratedIsInThePast)) { if (hasCreatedCourses || hasCreatedCourseRuns || hasUpdatedCourses || hasUpdatedCourseRuns || hasDeletedCourses || hasDeletedCourseRuns) { log.LogInformation($"updating courses for {mpItem.Ukprn}"); var courseFilename = await GenerateCoursesExportForProvider(log, courseCollectionService, logFile, mpItem, containerExporter, containerNameExporter).ConfigureAwait(false); fileNames.Add(courseFilename); } if (hasUpdatedVenues) { log.LogInformation($"updating venues for {mpItem.Ukprn}"); var venueFilename = await GenerateVenuesExportForProvider(log, venueCollectionService, logFile, mpItem, containerExporter, containerNameExporter).ConfigureAwait(false); fileNames.Add(venueFilename); } } else { logFile.AppendLine($"Conditional logic for {mpItem} is False."); } return(fileNames); }