public async Task <ActionResult> EditAcademyOpening(int?urn) { if (!urn.HasValue) { return(HttpNotFound()); } var result = await _establishmentReadService.GetAsync((int)urn, User); var estabTypes = await _lookupService.EstablishmentTypesGetAllAsync(); var links = await _establishmentReadService.GetLinkedEstablishmentsAsync((int)urn, User); var link = links.FirstOrDefault(e => e.LinkTypeId == (int)eLookupEstablishmentLinkType.ParentOrPredecessor); var establishment = (result).GetResult(); var viewModel = new EditAcademyOpeningViewModel() { Urn = (int)urn, EstablishmentName = establishment.Name, EstablishmentType = establishment.TypeId.HasValue ? estabTypes.FirstOrDefault(t => t.Id == establishment.TypeId)?.Name : null, PredecessorUrn = link?.Urn.GetValueOrDefault().ToString(), PredecessorName = link?.EstablishmentName, OpeningDate = new UI.Models.DateTimeViewModel(establishment.OpenDate) }; return(View(viewModel)); }
public async Task <ActionResult> SaveAcademyOpening(EditAcademyOpeningViewModel viewModel) { if (viewModel.EstablishmentName.IsNullOrWhiteSpace()) { ModelState.AddModelError("EstablishmentName", "Please enter the establishment name"); } if (!ModelState.IsValid) { return(View("EditAcademyOpening", viewModel)); } DateTime openingDate = viewModel.OpeningDate.ToDateTime().GetValueOrDefault(); var links = await _establishmentReadService.GetLinkedEstablishmentsAsync(viewModel.Urn, User); var link = links.FirstOrDefault(e => e.LinkTypeId == (int)eLookupEstablishmentLinkType.ParentOrPredecessor); ApiResponse response; if (link != null) { response = await _establishmentWriteService.PartialUpdateAsync( new EstablishmentModel { CloseDate = openingDate.AddDays(-1), Urn = link.Urn }, new EstablishmentFieldList { CloseDate = true }, User); if (response.HasErrors) { foreach (var e in response.Errors) { ModelState.AddModelError(e.Fields ?? string.Empty, e.GetMessage()); } } } response = await _establishmentWriteService.PartialUpdateAsync( new EstablishmentModel { OpenDate = openingDate, Name = viewModel.EstablishmentName, Urn = viewModel.Urn }, new EstablishmentFieldList { OpenDate = true, Name = true }, User); if (response.HasErrors) { foreach (var e in response.Errors) { ModelState.AddModelError(e.Fields ?? string.Empty, e.GetMessage()); } } return(RedirectToAction("ManageAcademyOpenings")); }
public async Task <ActionResult> SearchAcademyOpenings(int?urn, bool?isSearching) { if (urn.HasValue) { var result = await _establishmentReadService.GetAsync((int)urn, User); if (result.ReturnValue == null) { ModelState.AddModelError("Urn", "Please enter a valid URN"); return(View("SearchAcademyOpenings", new EditAcademyOpeningViewModel())); } var estabTypes = await _lookupService.EstablishmentTypesGetAllAsync(); var links = await _establishmentReadService.GetLinkedEstablishmentsAsync((int)urn, User); var link = links.FirstOrDefault(e => e.LinkTypeId == (int)eLookupEstablishmentLinkType.ParentOrPredecessor); var establishment = (result).GetResult(); if (establishment.StatusId != (int)eLookupEstablishmentStatus.ProposedToOpen) { ModelState.AddModelError("Urn", "Please enter a valid URN"); return(View("SearchAcademyOpenings", new EditAcademyOpeningViewModel())); } var viewModel = new EditAcademyOpeningViewModel() { Urn = (int)urn, EstablishmentName = establishment.Name, EstablishmentType = establishment.TypeId.HasValue ? estabTypes.FirstOrDefault(t => t.Id == establishment.TypeId)?.Name : null, PredecessorUrn = link?.Urn.GetValueOrDefault().ToString(), PredecessorName = link?.EstablishmentName, OpeningDate = new UI.Models.DateTimeViewModel(establishment.OpenDate), OpenDate = establishment.OpenDate ?? DateTime.Now }; return(View("SearchAcademyOpenings", viewModel)); } if (isSearching ?? false) { ModelState.AddModelError("Urn", "Please enter a valid URN"); } return(View("SearchAcademyOpenings", new EditAcademyOpeningViewModel())); }