public async Task <Unit> Handle(UserUpdateGroupsCommand request, CancellationToken cancellationToken) { var user = await _db.Users.Where(w => w.Id == request.UserId).Include(w => w.UserGroups) .FirstOrDefaultAsync(cancellationToken); if (user == null) { throw new UserNotFoundException(request.UserId); } switch (request.Type) { case AddRemove.Add when user.UserGroups.FirstOrDefault(w => w.GroupId == request.GroupId) != null: return(Unit.Value); case AddRemove.Remove: user.UserGroups.Remove(user.UserGroups.FirstOrDefault(w => w.GroupId == request.GroupId)); break; default: user.UserGroups.Add(new UserGroup { GroupId = request.GroupId, UserId = request.UserId }); break; } await _db.SaveChangesAsync(cancellationToken); return(Unit.Value); }
private void AddUserCommandExecuted() { RaisePropertyChanged("DisableParentWindow"); var view = new AddUserView(); view.ShowDialog(); RaisePropertyChanged("EnableParentWindow"); if (view.ViewModel.User.HasErrors) { return; } IsBusy = true; var user = view.ViewModel.User; CopyPermissionsFromGroup(user.UserGroup.UserGroup, user.User); LoadUserPermissions(user); LoadAuthorisationPermissions(user); user.PropertyChanged += OnUserModelPropertyChanged; var firstOrDefault = UserGroups.FirstOrDefault(x => x.UserGroup.ID == user.User.UserGroupID); if (firstOrDefault != null) { firstOrDefault.Users.Add(user); } SelectedUser = user; IsBusy = false; }
public UserGroup GetUserGroup() => UserGroups.FirstOrDefault(g => g.Code == UserGroupCode.User);
public UserGroup GetAdminGroup() => UserGroups.FirstOrDefault(g => g.Code == UserGroupCode.Admin);