public IActionResult SavePersonContactDetails(PersonDto model) { model = ValidatePersonContactDetails(model); var entity = _customerApiClient.GetPerson(model.GlobalIdentityKey.Value.ToString()).Result; if (entity == null) { ModelState.AddModelError("RowVersion", "The person is deleted by someone else. Please refresh the page and try again."); } else if (entity.RowVersion.ConvertByteArrayToString() != model.RowVersion.ConvertByteArrayToString()) { ModelState.AddModelError("RowVersion", "The person is updated by someone else. Please refresh the page and try again."); } if (!model.PersonContactDetails.Any()) { ModelState.AddModelError("", "The person contact detail is missing."); } if (!ModelState.IsValid) { GetPersonForContactDetails(model); return(PartialView("_ContactDetail", model)); } var personContactDetails = new List <PersonContactDetailDto>(); personContactDetails.AddRange(model.PersonContactDetails); personContactDetails = personContactDetails.Where(x => x.IsSelected).ToList(); entity.PersonContactDetails.Clear(); entity.PersonContactDetails.AddRange(personContactDetails); UpdateAuditInformation(entity); model = _customerApiClient.UpdatePersonContactDetails(model.Id, entity).Result; if (!string.IsNullOrWhiteSpace(model.ErrorMessage)) { GetPersonForContactDetails(model); return(PartialView("_ContactDetail", model)); } return(Json(new { success = string.IsNullOrWhiteSpace(model.ErrorMessage), rowVersion = model.RowVersion, message = model.SuccessMessage })); }