public ServiceResult <bool> AddRelatedPerson(RelatedPersonCreateVm model) { model.Validate(); if (!model.PersonId.HasValue) { throw new DomainException("Person Id invalid", ExceptionLevel.Error); } var person = _repository.Person.GetById(model.PersonId.Value); if (person == null) { throw new DomainException("Person Not Found", ExceptionLevel.Error); } if (model.CityId.HasValue) { var city = _repository.City.GetById(model.CityId.Value); if (city == null) { throw new DomainException("City not found", ExceptionLevel.Error); } } var newPerson = Domain.Models.PersonModels.Person.Create(model.FirstName, model.LastName, model.Gender, model.PrivateNumber, model.BirthDate, model.CityId); _repository.Person.Create(newPerson); newPerson.PhoneNumbers = new List <PhoneNumber>(); foreach (var modelPhoneNumber in model.PhoneNumbers) { var newPhoneNumber = PhoneNumber.Create(newPerson.Id, modelPhoneNumber.NumberType, modelPhoneNumber.Number); newPerson.PhoneNumbers.Add(newPhoneNumber); } newPerson.Relation = PersonRelation.Create(model.PersonId.Value, newPerson.Id, model.RelationType); _repository.Person.Save(); return(new ServiceResult <bool> { Status = ServiceResultStatus.Success }); }
public IActionResult UpdatePerson([FromBody] RelatedPersonCreateVm model) { var apiResult = Try(() => { return(_personService.AddRelatedPerson(model)); }); return(Ok(apiResult)); }