public async Task Update(NaturalPersonDto dto) { NaturalPerson person = await _naturalPersonRepository.GetById(dto.Id); UpdateNaturalPerson(dto, person); await _updateAddressService.Update(person.AddressId, dto.Address); await _updateDocumentService.Update(person.DocumentId, dto.Document); if (!person.Validate()) { NotifyDomainValidations(person.ValidationResult); } if (!_notifier.HasNotification()) { _naturalPersonRepository.Update(person); await _unitOfWork.Commit(); } }
public async Task UpdateAsync(NaturalPersonViewModel model) { var person = await _personRepository.GetAsync(model.Id); if (person == null) { return; } person.Name = model.Name; person.Gender = model.Gender.Value; person.Email = model.Email; person.SetBirthday(model.Birthday); person.SetIdDocument(model.IdDocument); // Address is optional, if country not informed delete address entity if (!string.IsNullOrWhiteSpace(model.Country)) { if (person.Address == null) { person.Address = new Address( model.Country, model.State, model.City, model.ZipCode, model.AddressLine1, model.AddressLine2); } else { person.Address.ChangeAddress( model.Country, model.State, model.City, model.ZipCode, model.AddressLine1, model.AddressLine2); } } else { person.Address = null; } _personRepository.Update(person); _personRepository.SaveChanges(); }