public async Task <ActionResult> Edit(int amendmentId, int id, AmendmentBodyEditViewModel model) { var bodies = await _amendmentBodyService.GetByAmentmentId(amendmentId); var body = bodies.FirstOrDefault(b => b.Id == id); if (body == null) { return(NotFound()); } body = _mapper.Map(model, body); var isLanguageIdValid = await _amendmentBodyService.ValidateLanguageId(body); if (!isLanguageIdValid) { ModelState.AddModelError("LanguageId", "An Amendment Body has already been created for this language."); } var alreadyCreatedLanguageIds = bodies.Where(b => b.Id != id).Select(b => b.LanguageId).ToList(); if (!ModelState.IsValid) { model.Languages = (await _languageDataService.GetAllAsync()).Where(l => alreadyCreatedLanguageIds.All(c => c != l.Id)).ToList(); return(View(model)); } await _amendmentBodyService.UpdateAsync(body, User.UserId()); return(RedirectToAction(nameof(Index), "Amendment")); }
public async Task <ActionResult> Create(int amendmentId, int?languageId) { var bodies = await _amendmentBodyService.GetByAmentmentId(amendmentId); var alreadyCreatedLanguageIds = bodies.Select(b => b.LanguageId).ToList(); var model = new AmendmentBodyEditViewModel() { AmendId = amendmentId }; model.LanguageId = languageId ?? 0; model.Languages = (await _languageDataService.GetAllAsync()).Where(l => alreadyCreatedLanguageIds.All(c => c != l.Id)).ToList(); return(View(model)); }