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));
        }