/
urmat
/
taskboardproject1
Обзор
Документация
Войти
/
urmat
/
taskboardproject1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
UserService
src/UserService.Domain/Persistence/Repositories/Entities/ProjectRepository.cs
38 строк
1 KB
urmatgit
add pagination, add usercontroller
04 апр 2025, 17:11
04 апр 2025, 17:11
34b2186
Код
Авторство
О чём код?
using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UserService.DataAccess.Common; using UserService.DataAccess.Entities; namespace UserService.DataAccess.Persistence.Repositories.Entities { public class ProjectRepository : BaseRepository<Project>, IProjectRepository { public ProjectRepository(TaskboardDbContext dataContext) : base(dataContext) { } public async Task<PaginationResponse<Project>> GetAllAsync(int pageIndex, int pageSize, Guid? userId) { var dbSet = _dataContext.Set<Project>(); var count = await dbSet.Where(x => !x.IsDeleted).CountAsync(); var quary = dbSet .AsNoTracking() .Include(x => x.UserProjects) //если берем все проекты которые участвует заданный юзер .Where(x => !x.IsDeleted ); //если userid задан тогда еще 1 условия добавляем if (userId is not null){ quary = quary.Where(x=> x.UserId == userId || x.UserProjects.Any(y => y.UserId == userId)); } var data = await quary .PaginateBy<Project>(pageIndex, pageSize) .ToListAsync(); return new PaginationResponse<Project>(data, count, pageIndex, pageSize); } } }