private bool IsCurrentUserATeamLeaderForWorker() { string currentUserLogin = SPContext.Current.Web.CurrentUser.LoginName; List <string> userLoginAndGroups = new List <string>(); userLoginAndGroups.Add(currentUserLogin); userLoginAndGroups.AddRange(SPContext.Current.Web.CurrentUser.Groups.OfType <SPGroup>().Select(gr => gr.Name)); List <Tuple <string, string> > whereCriteria = new List <Tuple <string, string> > { new Tuple <string, string>("Id", this.WorkerId.ToString()) }; var workersInfo = new RosterDataService().TableContent("WorkerPerson", "Id", FieldNames.WORKER_TEAMLEADER, whereCriteria).Select(x => { var elem = x.Item2 as IDictionary <string, object>; return(new { WorkerId = x.Item1, TeamLeader = elem[FieldNames.WORKER_TEAMLEADER].ToSafeString() }); }); //return workersInfo.Any() && workersInfo.FirstOrDefault().TeamLeader.Equals(currentUserLogin); return(workersInfo.Any() && userLoginAndGroups.Contains(workersInfo.FirstOrDefault().TeamLeader)); }