Esempio n. 1
0
        public async Task <bool> Update(int personId, int relatedPersonId, RelationshipType relationshipType)
        {
            var oldRelationship = _relationshipRepository
                                  .GetAll()
                                  .FirstOrDefault(p => p.PersonId == personId && p.RelatedPersonId == relatedPersonId);

            var oldReverseRelationship = _relationshipRepository
                                         .GetAll()
                                         .FirstOrDefault(p => p.PersonId == relatedPersonId && p.RelatedPersonId == personId);

            oldRelationship.RelationshipType = relationshipType;

            if (relationshipType == RelationshipType.Parent)
            {
                relationshipType = RelationshipType.Child;
            }
            else if (relationshipType == RelationshipType.Child)
            {
                relationshipType = RelationshipType.Parent;
            }

            oldReverseRelationship.RelationshipType = relationshipType;

            return(await _relationshipRepository.SaveChangesAsync());
        }
        public void RelationshipRetrieveTest()
        {
            const long       parentId         = 6;
            const PersonType perentPersonType = PersonType.Customer;
            var relationships = RelationshipRepository.GetAll(parentId, perentPersonType);

            Assert.IsNotNull(relationships);
        }
Esempio n. 3
0
        public async Task <bool> Delete(int id)
        {
            var person = _personRepository
                         .GetAll()
                         .Include(e => e.PersonEvents)
                         .ThenInclude(pe => pe.Person)
                         .FirstOrDefault(p => p.Id == id);

            var relationships = _relationshipRepository
                                .GetAll()
                                .Where(r => r.PersonId == id || r.RelatedPersonId == id);

            _relationshipRepository.RemoveRange(relationships);
            _personRepository.Remove(person);

            return(await _personRepository.SaveChangesAsync());
        }
        /// <summary>
        ///     Get Relationships
        /// </summary>
        /// <param name="id"></param>
        /// <param name="typeId"></param>
        /// <returns></returns>
        public IEnumerable <RelationshipDto> Get(long id, int typeId)
        {
            Mapper.CreateMap <Leaf, RelationshipDto>()
            .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Id))
            .ForMember(dest => dest.PersonType, opt => opt.MapFrom(src => src.PersonType))
            .ForMember(dest => dest.FullName, opt => opt.Ignore())
            .ForMember(dest => dest.Distance, opt => opt.MapFrom(src => src.Distance));

            var relationships = Mapper.Map <IEnumerable <Leaf>, List <RelationshipDto> >(RelationshipRepository.GetAll(id, (PersonType)typeId));

            foreach (RelationshipDto relationshipDto in relationships)
            {
                relationshipDto.FullName = GetPersonName(relationshipDto.Id, relationshipDto.PersonType);
            }

            return(relationships);
        }