feat(GetTasks Count And ShiftId)

- Add count and shift id in get tasks
master
Amir Hossein Khademi 2024-07-25 19:02:27 +03:30
parent 81762ecb64
commit a8f6fe66b3
5 changed files with 26 additions and 29 deletions

View File

@ -2,9 +2,6 @@
public class TaskController : ICarterModule public class TaskController : ICarterModule
{ {
public TaskController()
{
}
public virtual void AddRoutes(IEndpointRouteBuilder app) public virtual void AddRoutes(IEndpointRouteBuilder app)
{ {
var group = app.NewVersionedApi("Task") var group = app.NewVersionedApi("Task")
@ -13,12 +10,12 @@ public class TaskController : ICarterModule
group.MapGet("", GetAllAsync) group.MapGet("", GetAllAsync)
.WithDisplayName("GetAllTask") .WithDisplayName("GetAllTask")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageTasks,ApplicationPermission.ViewTasks)) .RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageTasks, ApplicationPermission.ViewTasks))
.HasApiVersion(1.0); .HasApiVersion(1.0);
group.MapGet("{id}", GetAsync) group.MapGet("{id}", GetAsync)
.WithDisplayName("GetOneTask") .WithDisplayName("GetOneTask")
.RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageTasks,ApplicationPermission.ViewTasks)) .RequireAuthorization(builder => builder.RequireClaim(CustomClaimType.Permission, ApplicationPermission.ManageTasks, ApplicationPermission.ViewTasks))
.HasApiVersion(1.0); .HasApiVersion(1.0);
group.MapPost("", Post) group.MapPost("", Post)
@ -35,12 +32,15 @@ public class TaskController : ICarterModule
} }
// GET:Get All Entity // GET:Get All Entity
public async Task<IResult> GetAllAsync([FromQuery] int page,ISender sender, CancellationToken cancellationToken) public async Task<IResult> GetAllAsync([FromQuery] int page,
=> TypedResults.Ok(await sender.Send(new GetTasksQuery(page), cancellationToken)); [FromQuery] int? count,
[FromQuery] Guid shiftId,
ISender sender, CancellationToken cancellationToken)
=> TypedResults.Ok(await sender.Send(new GetTasksQuery(page, ShiftId: shiftId, Count: count), cancellationToken));
// GET:Get An Entity By Id // GET:Get An Entity By Id
public async Task<IResult> GetAsync(Guid id, ISender sender, CancellationToken cancellationToken) public async Task<IResult> GetAsync(Guid id, ISender sender, CancellationToken cancellationToken)
=> TypedResults.Ok(await sender.Send(new GetTaskQuery(id),cancellationToken)); => TypedResults.Ok(await sender.Send(new GetTaskQuery(id), cancellationToken));
// POST:Create Entity // POST:Create Entity
public async Task<IResult> Post([FromBody] CreateTaskCommand ent, ISender mediator, CancellationToken cancellationToken) public async Task<IResult> Post([FromBody] CreateTaskCommand ent, ISender mediator, CancellationToken cancellationToken)

View File

@ -1 +0,0 @@
7bec0081-0f19-4cf7-84a9-7deed79e4f61

View File

@ -10,11 +10,6 @@ public static class LoggerConfig
Log.Logger = new LoggerConfiguration() Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext() .Enrich.FromLogContext()
.WriteTo.Console(theme: AnsiConsoleTheme.Literate) .WriteTo.Console(theme: AnsiConsoleTheme.Literate)
.WriteTo.Sentry(o =>
{
o.MinimumEventLevel = LogEventLevel.Error;
o.Dsn = "https://592b7fbb29464442a8e996247abe857f@watcher.igarson.app/7";
})
.MinimumLevel.Override("Microsoft.EntityFrameworkCore.Database.Command", LogEventLevel.Warning) .MinimumLevel.Override("Microsoft.EntityFrameworkCore.Database.Command", LogEventLevel.Warning)
.CreateLogger(); .CreateLogger();
} }

View File

@ -2,7 +2,7 @@
namespace Brizco.Domain.CommandQueries.Queries; namespace Brizco.Domain.CommandQueries.Queries;
public sealed record GetTasksQuery(int Page = 0) : public sealed record GetTasksQuery(int Page = 0 , int? Count = null,Guid? ShiftId = null) :
IRequest<List<TaskSDto>>; IRequest<List<TaskSDto>>;
public sealed record GetTaskQuery(Guid Id) : public sealed record GetTaskQuery(Guid Id) :

View File

@ -1,24 +1,27 @@
namespace Brizco.Repository.Handlers.Tasks; using Brizco.Domain.Entities.Tasks;
public class GetActivitiesQueryHandler : IRequestHandler<GetTasksQuery, List<TaskSDto>> namespace Brizco.Repository.Handlers.Tasks;
public class GetActivitiesQueryHandler(IRepositoryWrapper repositoryWrapper, ICurrentUserService currentUserService) : IRequestHandler<GetTasksQuery, List<TaskSDto>>
{ {
private readonly IRepositoryWrapper _repositoryWrapper;
private readonly ICurrentUserService _currentUserService;
public GetActivitiesQueryHandler(IRepositoryWrapper repositoryWrapper, ICurrentUserService currentUserService)
{
_repositoryWrapper = repositoryWrapper;
_currentUserService = currentUserService;
}
public async Task<List<TaskSDto>> Handle(GetTasksQuery request, CancellationToken cancellationToken) public async Task<List<TaskSDto>> Handle(GetTasksQuery request, CancellationToken cancellationToken)
{ {
if (_currentUserService.ComplexId == null) if (currentUserService.ComplexId == null)
throw new AppException("ComplexId is null", ApiResultStatusCode.NotFound); throw new AppException("ComplexId is null", ApiResultStatusCode.NotFound);
if (!Guid.TryParse(_currentUserService.ComplexId, out Guid complexId)) if (!Guid.TryParse(currentUserService.ComplexId, out Guid complexId))
throw new AppException("ComplexId is wrong", ApiResultStatusCode.NotFound); throw new AppException("ComplexId is wrong", ApiResultStatusCode.NotFound);
var query = repositoryWrapper.SetRepository<Domain.Entities.Tasks.Task>().TableNoTracking
.Where(t => t.ComplexId == complexId && t.IsActivity == false);
var tasks = await _repositoryWrapper.SetRepository<Domain.Entities.Tasks.Task>().TableNoTracking if (request.ShiftId != null)
.Where(t=>t.ComplexId==complexId && t.IsActivity == false) query = from taskShift in repositoryWrapper.SetRepository<TaskShift>().TableNoTracking
where taskShift.ShiftId == request.ShiftId
join task in query on taskShift.TaskId equals task.Id
select task;
query = query.Distinct();
var tasks = await query
.OrderByDescending(s => s.CreatedAt) .OrderByDescending(s => s.CreatedAt)
.Skip(request.Page * 15).Take(15) .Skip(request.Page * 15).Take(15)
.Select(TaskMapper.ProjectToSDto) .Select(TaskMapper.ProjectToSDto)