コード例 #1
0
        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 }));
        }