public async Task Store(NaturalPersonDto dto) { NaturalPerson person = new NaturalPerson(dto.Name, dto.Birthday, dto.Gender); StoreAddress(dto, person); StoreDocument(dto, person); if (!person.Validate()) { NotifyDomainValidations(person.ValidationResult); } if (!_notifier.HasNotification()) { _naturalPersonRepository.Add(person); await _unitOfWork.Commit(); } }
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(); } }
private void UpdateNaturalPerson(NaturalPersonDto dto, NaturalPerson person) { person.UpdateName(dto.Name); person.UpdateGender(dto.Gender); person.UpdateBirthday(dto.Birthday); }
private void StoreDocument(NaturalPersonDto dto, NaturalPerson person) { Document document = _storeDocumentService.Store(dto.Document); person.AssignDocument(document); }
private void StoreAddress(NaturalPersonDto dto, NaturalPerson person) { Address address = _storeAddressService.Store(dto.Address); person.AssignAddress(address); }