public static List <Ape> GetFather(ApeFamilyTree familyTree, Ape ape)
        {
            ApeFamily family = ape.GetFamily();

            return(new List <Ape>()
            {
                family?.Partners.SingleOrDefault(e => e != ape && e.Gender == GenderType.Male)
            });
        }
        public static List <Ape> GetSons(ApeFamilyTree familyTree, Ape ape)
        {
            ApeFamily family = familyTree.GetApeFamilies().SingleOrDefault(p => p.Partners.Contains(ape));

            if (family != null)
            {
                return(family.Children.Where(c => c.Gender == GenderType.Male).ToList());
            }
            return(new List <Ape>());
        }
        public static List <Ape> GetChildren(ApeFamilyTree familyTree, Ape ape)
        {
            ApeFamily family = familyTree.GetApeFamilies().SingleOrDefault(p => p.Partners.Contains(ape));

            if (family != null)
            {
                return(family.Children.ToList());
            }
            return(new List <Ape>());
        }
        public static List <Ape> GetSisters(ApeFamilyTree familyTree, Ape ape)
        {
            ApeFamily family = ape.GetFamily();

            if (family != null)
            {
                return(family.Children.Where(elem => elem != ape && elem.Gender != GenderType.Male).ToList());
            }
            return(new List <Ape>());
        }
        public static List <Ape> GetSiblings(ApeFamilyTree familyTree, Ape ape)
        {
            ApeFamily family = ape.GetFamily();

            if (family != null)
            {
                return(family.Children.Where(elem => elem != ape).ToList());
            }
            return(new List <Ape>());
        }
Exemplo n.º 6
0
        public List <Ape> GetParent(GenderType gender, ApeFamilyAssociationService service)
        {
            ApeFamily  family = service.GetElement(_name);
            List <Ape> result = new List <Ape>();

            if (family != null)
            {
                result.Add(family.Partners.SingleOrDefault(e => e != this && e.GetGender() == gender));
            }
            return(result);
        }
Exemplo n.º 7
0
        public List <Ape> GetSiblings(ApeFamilyAssociationService service)
        {
            ApeFamily  family   = service.GetElement(_name);
            List <Ape> siblings = new List <Ape>();

            if (family != null)
            {
                siblings = family.Children.Where(elem => elem != this).ToList();
            }

            return(siblings);
        }
Exemplo n.º 8
0
        public List <Ape> GetChildren(ApeFamilyService familyService)
        {
            ApeFamily  family = familyService.GetAll().SingleOrDefault(p => p.Partners.Contains(this));
            List <Ape> result = new List <Ape>();

            if (family != null)
            {
                result = family.Children;
            }

            return(result);
        }
Exemplo n.º 9
0
        public List <Ape> GetChildren(GenderType gender, ApeFamilyService familyService)
        {
            ApeFamily  family = familyService.GetAll().SingleOrDefault(p => p.Partners.Contains(this));
            List <Ape> result = new List <Ape>();

            if (family != null)
            {
                result = family.Children.Where(c => c.GetGender() == gender).ToList();
            }

            return(result);
        }
        public static List <Ape> GetGrandDaugthers(ApeFamilyTree familyTree, Ape ape)
        {
            ApeFamily  family        = familyTree.GetApeFamilies().SingleOrDefault(p => p.Partners.Contains(ape));
            List <Ape> children      = GetChildren(familyTree, ape);
            List <Ape> grandChildren = new List <Ape>();

            foreach (var child in children)
            {
                grandChildren.AddRange(GetChildren(familyTree, child).Where(c => c.Gender == GenderType.Female));
            }

            return(grandChildren);
        }
Exemplo n.º 11
0
        public List <Ape> GetGrandChildren(ApeFamilyService familyService)
        {
            ApeFamily  family = familyService.GetAll().SingleOrDefault(p => p.Partners.Contains(this));
            List <Ape> result = new List <Ape>();

            if (family != null)
            {
                foreach (var r in family.Children.ToList())
                {
                    result.AddRange(r.GetChildren(familyService));
                }
            }

            return(result);
        }