示例#1
0
        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
            });
        }
示例#2
0
        public IActionResult UpdatePerson([FromBody] DeleteRelatedPersonVm model)
        {
            var apiResult = Try(() => { return(_personService.DeleteRelatedPerson(model)); });

            return(Ok(apiResult));
        }