public async Task <IActionResult> Edit(UpdateIndividualViewModel individual) { var individualEntityResult = await _repository.GetEntityAsync <Individual> (individual.Id, nameof(Individual.PhoneNumbers), nameof(Individual.RelatedIndividuals)); if (!individualEntityResult.Success) { ModelState.AddModelError("", string.Join("\r\n", individualEntityResult.ErrorMessages)); return(View(individual)); } var individualEntity = individualEntityResult.Model; var files = HttpContext.Request.Form.Files; if (files != null && files.Count > 0) { var uploadResult = await files.UploadFileIfExistsAsync(_hostingEnvironment); if (!uploadResult.Success) { ModelState.AddModelError(nameof(CreateIndividualViewModel.Image), string.Join("\r\n", uploadResult.ErrorMessages)); return(View(individual)); } _hostingEnvironment.DeleteFileIfExists(individual.Image); individual.Image = uploadResult.Model; } var updatedIndividualEntity = UpdateIndividualViewModel.UpdateProjection(individual, individualEntity); var updateResult = await _repository.UpdateEntityAsync(updatedIndividualEntity, Convert.FromBase64String(individual.RowVersion)); if (!updateResult.Success) { ModelState.AddModelError("", string.Join("\r\n", updateResult.ErrorMessages)); return(View(individual)); } return(RedirectToAction("Details", new { id = updateResult.Model.Id })); }