Esempio n. 1
0
        /// <summary>
        /// Creates a list of "GroupWithMembership" which stores every group a user is in and wether he is a member of that group
        /// </summary>
        /// <param name="prefix"></param>
        /// <param name="currUser"></param>
        /// <returns></returns>
        public List <GroupWithMembership> SearchGroupsWithMemership(string prefix, string currUser)
        {
            List <GroupWithMembership> returnlist = new List <GroupWithMembership>();

            var groups = (from g in _dbContext.Groups
                          where g.Name.Contains(prefix)
                          orderby g.Name
                          select g).ToList();

            foreach (var group1 in groups)
            {
                var inGroup = (from groupUser in _dbContext.GroupUsers
                               where groupUser.GroupId == group1.Id && groupUser.UserId == currUser
                               select groupUser).FirstOrDefault();

                GroupWithMembership gwm = new GroupWithMembership();
                gwm.IsMember = inGroup != null;
                gwm.Group    = group1;
                if (!gwm.IsMember)
                {
                    var request = (from r in _dbContext.GroupRequests
                                   where r.FromUserId == currUser && r.GroupId == group1.Id
                                   select r).FirstOrDefault();
                    gwm.AskedForAccess = request != null;
                }
                returnlist.Add(gwm);
            }

            return(returnlist);
        }
Esempio n. 2
0
        public List <GroupWithMembership> SearchGroupsOfUser(string currUser)
        {
            List <GroupWithMembership> returnlist = new List <GroupWithMembership>();

            var groups = (from m in _dbContext.GroupUsers
                          join g in _dbContext.Groups
                          on m.GroupId equals g.Id
                          where m.UserId == currUser
                          orderby g.Name
                          select g).ToList();

            foreach (var group1 in groups)
            {
                GroupWithMembership gwm = new GroupWithMembership();
                gwm.IsMember       = true;
                gwm.Group          = group1;
                gwm.AskedForAccess = false;
                returnlist.Add(gwm);
            }

            var requests = (from r in _dbContext.GroupRequests
                            join g in _dbContext.Groups
                            on r.GroupId equals g.Id
                            where r.FromUserId == currUser
                            orderby g.Name
                            select g).ToList();

            foreach (var request in requests)
            {
                GroupWithMembership gwm = new GroupWithMembership();
                gwm.IsMember       = false;
                gwm.Group          = request;
                gwm.AskedForAccess = true;
                returnlist.Add(gwm);
            }

            return(returnlist);;
        }