示例#1
0
        public void AddUsers(UsersListViewComponentViewModel inputModel, string groupId)
        {
            List <string> usersInGroup = this.context.GroupUsers
                                         .Where(gu => gu.GroupId == groupId)
                                         .Select(gu => gu.User.UserName).ToList();

            IEnumerable <string> userIds = inputModel.SelectedUsers
                                           .Except(usersInGroup)
                                           .Select(u => this.userManager.Users.FirstOrDefault(x => x.Email == u).Id);

            List <GroupUser> groupUsers = new List <GroupUser>();

            foreach (var id in userIds)
            {
                GroupUser groupUser = new GroupUser
                {
                    GroupId   = groupId,
                    UserId    = id,
                    CreatedOn = DateTime.UtcNow,
                };

                groupUsers.Add(groupUser);
            }

            this.context.GroupUsers.AddRange(groupUsers);
            this.context.SaveChanges();
        }
示例#2
0
        public IViewComponentResult Invoke()
        {
            UsersListViewComponentViewModel viewModel = new UsersListViewComponentViewModel
            {
                MultiSelectUsers = this.groupsService.ListAllUsers()
            };

            return(this.View(viewModel));
        }
示例#3
0
        public IActionResult Details(UsersListViewComponentViewModel inputModel, string id)
        {
            if (!ModelState.IsValid)
            {
                string userId = this.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
                GroupDetailsViewModel groupDetails = this.groupsService.GetGroupDetails(id, userId);
                return(this.View(groupDetails));
            }

            this.groupsService.AddUsers(inputModel, id);
            return(this.RedirectToAction("List"));
        }