public async Task AddMigrationReport(CourseMigrationReport courseReport) { Throw.IfNull(courseReport, nameof(courseReport)); try { using (var client = _cosmosDbHelper.GetClient()) { var result = await _cosmosDbHelper.GetDocumentsByUKPRN<CourseMigrationReport>(client, _settings.CoursesMigrationReportCollectionId, courseReport.ProviderUKPRN); if (result.Any()) { courseReport.Id = result.FirstOrDefault().Id; await _cosmosDbHelper.UpdateDocumentAsync(client, _settings.CoursesMigrationReportCollectionId, courseReport); } else { var doc = await _cosmosDbHelper.CreateDocumentAsync(client, _settings.CoursesMigrationReportCollectionId, courseReport); } } } catch (Exception e) { Console.WriteLine(e); throw; } }
public ReportViewModel(IEnumerable <Course> courses, CourseMigrationReport report) { var courseCountStatusList = new List <RecordStatus> { RecordStatus.Live, RecordStatus.MigrationPending, RecordStatus.MigrationReadyToGoLive }; ErrorsCount = courses.Where(c => !string.IsNullOrEmpty(c.LearnAimRef) && !string.IsNullOrEmpty(c.QualificationCourseTitle)) // course does not haev Larns No or qualification title .SelectMany(c => c.CourseRuns) .Count(x => x.RecordStatus == RecordStatus.MigrationPending || x.RecordStatus == RecordStatus.MigrationReadyToGoLive); PublishedCount = courses.SelectMany(c => c.CourseRuns) .Count(x => x.RecordStatus == RecordStatus.Live); if (report == null) { CourseCount = null; NoLarsCount = null; } else { CourseCount = report.PreviousLiveCourseCount; NoLarsCount = (report.LarslessCourses.SelectMany(c => c.CourseRuns)).Count(); } }
public async Task <IResult> AddMigrationReport(CourseMigrationReport courseMigrationReport) { _logger.LogMethodEnter(); Throw.IfNull(courseMigrationReport, nameof(CourseMigrationReport)); try { _logger.LogInformationObject("Course add object.", courseMigrationReport); _logger.LogInformationObject("Course add URI", _addCourseMigrationReportsUri); var courseJson = JsonConvert.SerializeObject(courseMigrationReport); var content = new StringContent(courseJson, Encoding.UTF8, "application/json"); var response = await _httpClient.PostAsync(_addCourseMigrationReportsUri, content); _logger.LogHttpResponseMessage("Course add migration report service http response", response); if (response.IsSuccessStatusCode) { var json = await response.Content.ReadAsStringAsync(); _logger.LogInformationObject("Course add migration report service json response", json); return(Result.Ok()); } else if (response.StatusCode == HttpStatusCode.TooManyRequests) { return(Result.Fail("Course add migration report service unsuccessful http response - TooManyRequests")); } else { return(Result.Fail("Course add migration report service unsuccessful http response - ResponseStatusCode: " + response.StatusCode)); } } catch (HttpRequestException hre) { _logger.LogException("Course add migration report service http request error", hre); return(Result.Fail("Course add migration report service http request error.")); } catch (Exception e) { _logger.LogException("Course add migration report service unknown error.", e); return(Result.Fail("Course add migration report service unknown error.")); } finally { _logger.LogMethodExit(); } }
private bool HasValidReportOrCourses(IList <Course> courses, CourseMigrationReport report) { return(courses.Any() || report != null && report.LarslessCourses.Any()); }
public IActionResult UpdateCourseMigrationReport(CourseMigrationReport courseMigrationReport) { return(Ok()); }