public EditAatfDetails ViewModelToRequest(FacilityViewModelBase viewModel) { var data = new AatfData( viewModel.Id, viewModel.Name, viewModel.ApprovalNumber, viewModel.ComplianceYear, viewModel.CompetentAuthoritiesList.FirstOrDefault(p => p.Abbreviation == viewModel.CompetentAuthorityId), Enumeration.FromValue <AatfStatus>(viewModel.StatusValue), viewModel.SiteAddressData, Enumeration.FromValue <AatfSize>(viewModel.SizeValue), viewModel.ApprovalDate.GetValueOrDefault()) { AatfSizeValue = viewModel.SizeValue, AatfStatusValue = viewModel.StatusValue }; if (viewModel.CompetentAuthorityId != UKCompetentAuthorityAbbreviationType.EA) { data.PanAreaDataId = null; data.LocalAreaDataId = null; } else { data.PanAreaDataId = viewModel.PanAreaId; data.LocalAreaDataId = viewModel.LocalAreaId; } data.FacilityType = viewModel.FacilityType; return(new EditAatfDetails() { Data = data }); }
public static AatfData CreateFacilityData(FacilityViewModelBase viewModel) { var data = new AatfData( Guid.NewGuid(), viewModel.Name, viewModel.ApprovalNumber, viewModel.ComplianceYear, viewModel.CompetentAuthoritiesList.FirstOrDefault(p => p.Abbreviation == viewModel.CompetentAuthorityId), Enumeration.FromValue <AatfStatus>(viewModel.StatusValue), viewModel.SiteAddressData, Enumeration.FromValue <AatfSize>(viewModel.SizeValue), viewModel.ApprovalDate.GetValueOrDefault(), viewModel.PanAreaList.FirstOrDefault(p => p.Id == viewModel.PanAreaId), viewModel.LocalAreaList.FirstOrDefault(p => p.Id == viewModel.LocalAreaId)) { FacilityType = viewModel.FacilityType }; return(data); }
private async Task <ActionResult> ManageFacilityDetails(FacilityViewModelBase viewModel) { PreventSiteAddressNameValidationErrors(); SetBreadcrumb(viewModel.FacilityType, null); using (var client = apiClient()) { var doesApprovalNumberExist = false; var existingAatf = await client.SendAsync(User.GetAccessToken(), new GetAatfById(viewModel.Id)); if (existingAatf.ApprovalNumber != viewModel.ApprovalNumber) { var result = await validationWrapper.Validate(User.GetAccessToken(), viewModel); if (!result.IsValid) { doesApprovalNumberExist = true; } } if (ModelState.IsValid && !doesApprovalNumberExist) { viewModel.CompetentAuthoritiesList = await client.SendAsync(User.GetAccessToken(), new GetUKCompetentAuthorities()); viewModel.PanAreaList = await client.SendAsync(User.GetAccessToken(), new GetPanAreas()); viewModel.LocalAreaList = await client.SendAsync(User.GetAccessToken(), new GetLocalAreas()); var request = detailsRequestCreator.ViewModelToRequest(viewModel); if (existingAatf.ApprovalDate != viewModel.ApprovalDate) { var approvalDateFlags = await client.SendAsync(User.GetAccessToken(), new CheckAatfApprovalDateChange(existingAatf.Id, viewModel.ApprovalDate.Value)); if (approvalDateFlags.HasFlag(CanApprovalDateBeChangedFlags.DateChanged)) { TempData["aatfRequest"] = request; return(RedirectToAction(nameof(UpdateApproval), new { id = existingAatf.Id, organisationId = existingAatf.Organisation.Id })); } } await client.SendAsync(User.GetAccessToken(), request); await cache.InvalidateAatfCache(existingAatf.Organisation.Id); return(Redirect(Url.Action("Details", new { area = "Admin", viewModel.Id }))); } if (!viewModel.ModelValidated) { ModelState.RunCustomValidation(viewModel); } var accessToken = User.GetAccessToken(); viewModel.StatusList = Enumeration.GetAll <AatfStatus>(); viewModel.SizeList = Enumeration.GetAll <AatfSize>(); viewModel.CompetentAuthoritiesList = await client.SendAsync(accessToken, new GetUKCompetentAuthorities()); viewModel.PanAreaList = await client.SendAsync(accessToken, new GetPanAreas()); viewModel.LocalAreaList = await client.SendAsync(accessToken, new GetLocalAreas()); viewModel.SiteAddressData.Countries = await client.SendAsync(accessToken, new GetCountries(false)); ModelState.ApplyCustomValidationSummaryOrdering(FacilityViewModelBase.ValidationMessageDisplayOrder); if (doesApprovalNumberExist) { ModelState.AddModelError("ApprovalNumber", Constants.ApprovalNumberExistsError); } return(View(nameof(ManageAatfDetails), viewModel)); } }
public async Task <ValidationResult> ValidateByYear(string token, FacilityViewModelBase model, int year) { var validator = new FacilityViewModelBaseValidator(token, apiClient, year); return(await validator.ValidateAsync(model)); }