Example #1
0
        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
            });
        }