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();
            }
        }
Ejemplo n.º 4
0
 private bool HasValidReportOrCourses(IList <Course> courses, CourseMigrationReport report)
 {
     return(courses.Any() || report != null && report.LarslessCourses.Any());
 }
Ejemplo n.º 5
0
 public IActionResult UpdateCourseMigrationReport(CourseMigrationReport courseMigrationReport)
 {
     return(Ok());
 }