private async Task UpdateOrganisationWithUpdatedGrade(Guid applicationId, FinancialGrade grade) { var application = await _applyRepository.GetApplication(applicationId); var org = await _organisationQueryRepository.Get(application.OrganisationId); if (org != null) { org.OrganisationData.FHADetails = new FHADetails() { FinancialDueDate = grade.FinancialDueDate, FinancialExempt = grade.SelectedGrade == FinancialApplicationSelectedGrade.Exempt }; if (org.OrganisationData.FinancialGrades == null) { org.OrganisationData.FinancialGrades = new List <FinancialGrade>(); } if (org.OrganisationData.FinancialGrades.Any(x => x.ApplicationReference == grade.ApplicationReference)) { org.OrganisationData.FinancialGrades = org.OrganisationData.FinancialGrades. Where(x => x.ApplicationReference == grade.ApplicationReference).Select(s => { return(grade); } ).ToList(); } else { org.OrganisationData.FinancialGrades.Add(grade); } await _organisationRepository.UpdateOrganisation(org); } }
private void SetupGradeAndFinancialDueDate(FinancialGrade grade) { Grade = grade ?? new FinancialGrade(); OutstandingFinancialDueDate = new FinancialDueDate(); GoodFinancialDueDate = new FinancialDueDate(); SatisfactoryFinancialDueDate = new FinancialDueDate(); MonitoringFinancialDueDate = new FinancialDueDate(); if (Grade.FinancialDueDate.HasValue) { var day = Grade.FinancialDueDate.Value.Day.ToString(); var month = Grade.FinancialDueDate.Value.Month.ToString(); var year = Grade.FinancialDueDate.Value.Year.ToString(); switch (Grade.SelectedGrade) { case FinancialApplicationSelectedGrade.Outstanding: OutstandingFinancialDueDate = new FinancialDueDate { Day = day, Month = month, Year = year }; break; case FinancialApplicationSelectedGrade.Good: GoodFinancialDueDate = new FinancialDueDate { Day = day, Month = month, Year = year }; break; case FinancialApplicationSelectedGrade.Satisfactory: SatisfactoryFinancialDueDate = new FinancialDueDate { Day = day, Month = month, Year = year }; break; case FinancialApplicationSelectedGrade.Monitoring: MonitoringFinancialDueDate = new FinancialDueDate { Day = day, Month = month, Year = year }; break; default: break; } } }
public async Task ReturnFinancialReview(Guid id, FinancialGrade financialGrade) { if (financialGrade != null) { var application = await GetApplication(id); var applyData = application?.ApplyData; var sequence = applyData?.Sequences.SingleOrDefault(seq => seq.SequenceNo == FINANCIAL_SEQUENCE); var section = sequence?.Sections.SingleOrDefault(sec => sec.SectionNo == FINANCIAL_SECTION); if (application != null && section != null && sequence?.IsActive == true && application.FinancialReviewStatus == FinancialReviewStatus.InProgress) { var financialReviewStatus = (financialGrade.SelectedGrade == FinancialApplicationSelectedGrade.Inadequate) ? FinancialReviewStatus.Rejected : FinancialReviewStatus.Graded; application.FinancialReviewStatus = financialReviewStatus; application.FinancialGrade = financialGrade; application.UpdatedBy = financialGrade.GradedBy; application.UpdatedAt = DateTime.UtcNow; section.Status = ApplicationSectionStatus.Graded; section.ReviewedBy = financialGrade.GradedBy; section.ReviewStartDate = DateTime.UtcNow; using (var connection = new SqlConnection(_configuration.SqlConnectionString)) { await connection.ExecuteAsync(@"UPDATE Apply SET ApplyData = @ApplyData, FinancialGrade = @FinancialGrade, FinancialReviewStatus = @FinancialReviewStatus, UpdatedBy = @UpdatedBy, UpdatedAt = GETUTCDATE() WHERE Apply.Id = @Id", new { application.Id, application.ApplyData, application.FinancialGrade, application.FinancialReviewStatus, application.UpdatedBy }); } } } else { _logger.LogError("FinancialGrade is null therefore failed to update Apply table."); } }
public FinancialApplicationViewModel(Guid id, Guid applicationId, Section section, FinancialGrade grade, AssessorService.ApplyTypes.Application application) { Id = id; if (section != null) { Section = section; ApplicationId = section.ApplicationId; } else { ApplicationId = applicationId; } SetupGradeAndFinancialDueDate(grade); OrgId = application.ApplyingOrganisationId; if (application.ApplicationData != null) { ApplicationReference = application.ApplicationData.ReferenceNumber; } if (application.ApplyingOrganisation?.OrganisationData != null) { Ukprn = application.ApplyingOrganisation.EndPointAssessorUkprn; LegalName = application.ApplyingOrganisation.OrganisationData.LegalName; TradingName = application.ApplyingOrganisation.OrganisationData.TradingName; ProviderName = application.ApplyingOrganisation.OrganisationData.ProviderName; CompanyNumber = application.ApplyingOrganisation.OrganisationData.CompanyNumber; } }
public ReturnFinancialReviewRequest(Guid id, FinancialGrade updatedGrade) { Id = id; UpdatedGrade = updatedGrade; }
public async Task <ActionResult> ReturnReview(Guid Id, [FromBody] FinancialGrade updatedGrade) { await _mediator.Send(new ReturnFinancialReviewRequest(Id, updatedGrade)); return(Ok()); }
public async Task ReturnFinancialReview(Guid applicationId, FinancialGrade grade) { await Post($"/Financial/{applicationId}/Return", grade); }