示例#1
0
        private async Task <IEnumerable <System.Web.Mvc.SelectListItem> > GetAvaibleRelationTypeSelects(Person inviter, Person invited)
        {
            var list = FccRelationTypeHelper.GetFamilySiblingsSelectGroup(invited.Sex);

            var isAlreadyRelated =
                (await _mgrFcc.GetAllPersonRelationsBetweenPersons(inviter.Id, invited.Id) ??
                 new List <PersonRelation>()).Any();

            if (isAlreadyRelated)
            {
                return(new List <System.Web.Mvc.SelectListItem>());
            }

            if (invited.HasBirthDate && inviter.HasBirthDate)
            {
                list = list
                       .Where(e =>
                {
                    if ((e.Value == RelationType.FatherMother.ToString() ||
                         e.Value == RelationType.GrandFatherMother.ToString()) &&
                        invited.BirthDate >= inviter.BirthDate)
                    {
                        return(false);
                    }
                    else if ((e.Value == RelationType.SonDaughter.ToString() ||
                              e.Value == RelationType.GrandSonDaughter.ToString()) &&
                             invited.BirthDate <= inviter.BirthDate)
                    {
                        return(false);
                    }

                    return(true);
                });
            }

            return(list);
        }