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 TaskController()
{
}
public virtual void AddRoutes(IEndpointRouteBuilder app)
{
var group = app.NewVersionedApi("Task")
@ -13,12 +10,12 @@ public class TaskController : ICarterModule
group.MapGet("", GetAllAsync)
.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);
group.MapGet("{id}", GetAsync)
.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);
group.MapPost("", Post)
@ -35,12 +32,15 @@ public class TaskController : ICarterModule
}
// GET:Get All Entity
public async Task<IResult> GetAllAsync([FromQuery] int page,ISender sender, CancellationToken cancellationToken)
=> TypedResults.Ok(await sender.Send(new GetTasksQuery(page), cancellationToken));
public async Task<IResult> GetAllAsync([FromQuery] int page,
[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
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
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()
.Enrich.FromLogContext()
.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)
.CreateLogger();
}

View File

@ -2,7 +2,7 @@
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>>;
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)
{
if (_currentUserService.ComplexId == null)
if (currentUserService.ComplexId == null)
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);
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
.Where(t=>t.ComplexId==complexId && t.IsActivity == false)
if (request.ShiftId != null)
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)
.Skip(request.Page * 15).Take(15)
.Select(TaskMapper.ProjectToSDto)