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); }