public ServiceResult <bool> DeleteRelatedPerson(DeleteRelatedPersonVm model) { model.Validate(); var person = _repository.Person.GetById(model.PersonId.Value, true); if (person == null) { throw new DomainException("Person Not Found", ExceptionLevel.Error); } var personIds = _repository.PersonRelation.GetByPersonId(model.PersonId).Select(x => x.RelatedPersonId).ToList(); foreach (var personId in personIds) { var relatedPerson = _repository.Person.GetById(personId, true); if (relatedPerson == null) { throw new DomainException("relatedPerson Not Found", ExceptionLevel.Error); } relatedPerson.Delete(); var relations = _repository.PersonRelation.GetByPersonId(personId, true); for (int i = 0; i < relations.Count; i++) { relations[i].Delete(); } var relation = _repository.PersonRelation.GetByRelatedPersonId(relatedPerson.Id, true); relation.Delete(); } _repository.Person.Save(); return(new ServiceResult <bool> { Status = ServiceResultStatus.Success }); }
public IActionResult UpdatePerson([FromBody] DeleteRelatedPersonVm model) { var apiResult = Try(() => { return(_personService.DeleteRelatedPerson(model)); }); return(Ok(apiResult)); }