/// <summary> /// Получить табличные данные пользователей. /// </summary> /// <param name="gridQuery"> Запрос на формирование табличных записей. </param> /// <returns> Возвращает монаду табличных записей пользователей. </returns> public Either <Error, DtoGridUser> GetGridUser(DtoGridQueryUser gridQuery) { var dbQuery = _appContext.Users.AsQueryable(); var optionFilter = gridQuery.Filter; optionFilter.Bind(filter => dbQuery = dbQuery.Where(user => user.DisplayName.Contains(filter.SearchName))); var rows = dbQuery.Paginate(gridQuery.Pagination).Select(user => new DtoRowUser(user.Email, user.DisplayName, user.Id)); var result = new DtoGridUser(rows, _appContext.Users.Count()); return(Right <Error, DtoGridUser>(result)); }
public Either <Error, DtoGridUser> GetGridRoleUsers(DtoGridQueryRoleUser gridQuery) { var dbQuery = _appContext.UserRoles.AsQueryable(); var optionFilter = gridQuery.Filter; optionFilter.Bind(filter => dbQuery = dbQuery.Where(userRole => userRole.Role.Id == filter.Id)); var rows = dbQuery.Paginate(gridQuery.Pagination).Select(userRole => _appContext.Users.Find(userRole.User.Id)).Where(user => user != null).Select(user => new DtoRowUser(user.Email, user.DisplayName, user.Id)); var result = new DtoGridUser(rows, _appContext.Users.Count()); return(Right <Error, DtoGridUser>(result)); }