public async Task <ActionResult> CreateEditPredefinedLASet(PredefinedLASetViewModel viewModel) { if (ModelState.ContainsKey(nameof(viewModel.SuppressWarning))) { ModelState.Remove(nameof(viewModel.SuppressWarning)); } if (ModelState.IsValid) { var sets = await _localAuthoritySetRepository.GetAllAsync(); var duplicate = sets.Items.Where(x => x.Title == viewModel.Title && (viewModel.IsNewEntity || viewModel.Id != x.RowKey)).Select(x => x.RowKey).FirstOrDefault(); if (duplicate == null || viewModel.SuppressWarning) { var entity = viewModel.IsNewEntity ? new LocalAuthoritySet() : await _localAuthoritySetRepository.GetAsync(viewModel.Id); entity.Title = viewModel.Title; entity.Ids = viewModel.SelectedLocalAuthorityIds.ToArray(); if (viewModel.IsNewEntity) { await _localAuthoritySetRepository.CreateAsync(entity); } else { await _localAuthoritySetRepository.UpdateAsync(entity); } if (duplicate != null) { await _localAuthoritySetRepository.DeleteAsync(duplicate); } if (viewModel.Referrer == "results") { return(Redirect(string.Concat(Url.RouteUrl("IndSchSearch"), "?a=search&Mode=", viewModel.Mode, "&", QueryStringHelper.ToQueryString(IndSchoolsSearchViewModel.BindAliasForSelectedLocalAuthorityIds, viewModel.SelectedLocalAuthorityIds.ToArray())))); } return(RedirectToRoute("PredefinedLASets")); } else if (duplicate != null) { viewModel.WarningNameClash = true; } } viewModel.LocalAuthorities = (await _lookup.LocalAuthorityGetAllAsync()).OrderBy(x => x.Name).Select(x => new LookupItemViewModel(x)); return(View("CreateEditPredefinedLASet", viewModel)); }
public async Task <ActionResult> CreatePredefinedLASet(PredefinedLASetViewModel viewModel) { ModelState.Clear(); viewModel.LocalAuthorities = (await _lookup.LocalAuthorityGetAllAsync()).OrderBy(x => x.Name).Select(x => new LookupItemViewModel(x)); return(View("CreateEditPredefinedLASet", viewModel)); }