コード例 #1
0
 public ActionResult CreateGroupMember(int groupId, GroupMembersViewModel member)
 {
     try
     {
         if (!ModelState.IsValid)
         {
             throw new Exception(ModelState.ToString());
         }
         _groupMemberService.Create(member, groupId);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
コード例 #2
0
        public virtual PartialViewResult GetGroupMembers(Guid groupId, int?p)
        {
            // Get the Group
            var group = _groupService.Get(groupId);

            var loggedOnUsersRole = GetGroupMembershipRole(group.Id);

            // Set the page index
            var pageIndex = p ?? 1;

            // check the user has permission to this Group
            var permissions = RoleService.GetPermissions(group, loggedOnUsersRole);

            var groupUsers = group.GroupUsers.Select(x => new GroupUserViewModel {
                GroupUser = x, GroupUserStatus = x.GetUserStatusForGroup()
            });

            // Create the main view model for the Group
            var viewModel = new GroupMembersViewModel {
                PageIndex  = pageIndex,
                TotalCount = group.GroupUsers.Count,
                TotalPages = (int)Math.Ceiling(group.GroupUsers.Count / (double)SettingsService.GetSettings().DiscussionsPerPage),
                GroupUsers = groupUsers.Where(x => x.GroupUserStatus != GroupUserStatus.Pending &&
                                              x.GroupUserStatus != GroupUserStatus.Rejected &&
                                              x.GroupUser.Role.RoleName != Constants.AdminRoleName).ToList()
                             .OrderBy(x => x.GroupUser.User.Surname),
                GroupUsersPending = groupUsers.Where(x => x.GroupUserStatus == GroupUserStatus.Pending).ToList(),
                GroupAdmins       = groupUsers.Where(x => x.GroupUser.Role.RoleName == Constants.AdminRoleName).ToList().OrderBy(x => x.GroupUser.User.Surname),
                PublicGroup       = group.PublicGroup
            };


            if (LoggedOnReadOnlyUser != null)
            {
                var user = group.GroupUsers.FirstOrDefault(x => x.User.Id == LoggedOnReadOnlyUser.Id);
                viewModel.GroupUserStatus  = user.GetUserStatusForGroup();
                viewModel.LoggedInUserRole = loggedOnUsersRole;
            }

            return(PartialView("_ManageUsers", viewModel));
        }
コード例 #3
0
        public IActionResult GroupMembers(int id)
        {
            var userid              = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            var profileId           = this.profilesService.GetId(userid);
            var hasAdminPermissions = this.groupsService.HasAdminPermissions(id, profileId);

            if (hasAdminPermissions)
            {
                var viewModel = new GroupMembersViewModel()
                {
                    Members = this.groupsService.GetMembers <MemberInfoViewModel>(id),
                    IsAdmin = this.groupsService.HasAdminPermissions(id, profileId),
                    IsOwner = this.groupsService.IsOwner(id, profileId),
                    Id      = id,
                };

                return(this.View(viewModel));
            }

            return(this.BadRequest());
        }
コード例 #4
0
        // GET: Group/Members/1
        public ActionResult Members(int id)
        {
            using (var db = new ZapContext())
            {
                var group = db.Groups
                            .Include(g => g.Members)
                            .Include(g => g.Moderators)
                            .Include(g => g.Administrators)
                            .AsNoTracking()
                            .FirstOrDefault(g => g.GroupId == id);

                List <GroupMemberViewModel> groupMembers = new List <GroupMemberViewModel>();

                foreach (var m in group.Members)
                {
                    groupMembers.Add(new GroupMemberViewModel()
                    {
                        UserName             = m.Name,
                        AboutMe              = m.AboutMe,
                        AppId                = m.AppId,
                        IsModerator          = group.Moderators.Select(u => u.Id).Contains(m.Id),
                        IsGroupAdministrator = group.Administrators.Select(u => u.Id).Contains(m.Id),
                        IsSiteAdministrator  = m.Name == "Zelgada",
                    });
                }

                GroupMembersViewModel vm = new GroupMembersViewModel()
                {
                    GroupId     = group.GroupId,
                    GroupName   = group.GroupName,
                    Icon        = group.Icon != null ? "fa-" + group.Icon : "fa-bolt",
                    TotalEarned = group.TotalEarned + group.TotalEarnedToDistribute,
                    Members     = groupMembers,
                };

                return(View(vm));
            }
        }
コード例 #5
0
        public void Create(GroupMembersViewModel model, int groupId)
        {
            // Create Group Member : if model.UserTypeId == UserType.Student
            if (model.UserTypeId == (int)UserType.Student)
            {
                var student = _studentRepository.FindById(model.MemberId);
                if (student == null)
                {
                    throw new Exception("student not found");
                }

                var groupStudent = new GroupStudents()
                {
                    GroupId   = groupId,
                    StudentId = model.MemberId
                };
                _groupStudentsRepository.Create(groupStudent);
            }
            // Create Group Member : if model.UserTypeId == UserType.Mentor
            if (model.UserTypeId == (int)UserType.Mentor)
            {
                var mentor = _mentorRepository.FindById(model.MemberId);
                if (mentor == null)
                {
                    throw new Exception("mentor not found");
                }

                var groupMentor = new GroupMentors()
                {
                    GroupId      = groupId,
                    MentorId     = model.MemberId,
                    MentorTypeId = (int)Enum.Parse(typeof(MentorType), model.UserType)
                };
                _groupMentorsRepository.Create(groupMentor);
            }
        }