From a8f6fe66b314e335d7af3afd5ed8112bad7d5130 Mon Sep 17 00:00:00 2001 From: "Amir.H Khademi" Date: Thu, 25 Jul 2024 19:02:27 +0330 Subject: [PATCH] feat(GetTasks Count And ShiftId) - Add count and shift id in get tasks --- Brizco.Api/Controllers/TaskController.cs | 16 +++++----- .../.installation | 1 - .../Configurations/LoggerConfig.cs | 5 --- .../CommandQueries/Queries/TaskQueries.cs | 2 +- .../Handlers/Tasks/GetTasksQueryHandler.cs | 31 ++++++++++--------- 5 files changed, 26 insertions(+), 29 deletions(-) delete mode 100644 Brizco.Api/Sentry/9DC334EC83D3BBA80249F4426A4CB422C68089AE/.installation diff --git a/Brizco.Api/Controllers/TaskController.cs b/Brizco.Api/Controllers/TaskController.cs index 902f782..90c50e3 100644 --- a/Brizco.Api/Controllers/TaskController.cs +++ b/Brizco.Api/Controllers/TaskController.cs @@ -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 GetAllAsync([FromQuery] int page,ISender sender, CancellationToken cancellationToken) - => TypedResults.Ok(await sender.Send(new GetTasksQuery(page), cancellationToken)); + public async Task 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 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 Post([FromBody] CreateTaskCommand ent, ISender mediator, CancellationToken cancellationToken) diff --git a/Brizco.Api/Sentry/9DC334EC83D3BBA80249F4426A4CB422C68089AE/.installation b/Brizco.Api/Sentry/9DC334EC83D3BBA80249F4426A4CB422C68089AE/.installation deleted file mode 100644 index 2eae656..0000000 --- a/Brizco.Api/Sentry/9DC334EC83D3BBA80249F4426A4CB422C68089AE/.installation +++ /dev/null @@ -1 +0,0 @@ -7bec0081-0f19-4cf7-84a9-7deed79e4f61 \ No newline at end of file diff --git a/Brizco.Api/WebFramework/Configurations/LoggerConfig.cs b/Brizco.Api/WebFramework/Configurations/LoggerConfig.cs index 7630b62..5e36dd2 100644 --- a/Brizco.Api/WebFramework/Configurations/LoggerConfig.cs +++ b/Brizco.Api/WebFramework/Configurations/LoggerConfig.cs @@ -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(); } diff --git a/Brizco.Domain/CommandQueries/Queries/TaskQueries.cs b/Brizco.Domain/CommandQueries/Queries/TaskQueries.cs index d66bec0..5572bce 100644 --- a/Brizco.Domain/CommandQueries/Queries/TaskQueries.cs +++ b/Brizco.Domain/CommandQueries/Queries/TaskQueries.cs @@ -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>; public sealed record GetTaskQuery(Guid Id) : diff --git a/Brizco.Repository/Handlers/Tasks/GetTasksQueryHandler.cs b/Brizco.Repository/Handlers/Tasks/GetTasksQueryHandler.cs index 39f32d5..883caa9 100644 --- a/Brizco.Repository/Handlers/Tasks/GetTasksQueryHandler.cs +++ b/Brizco.Repository/Handlers/Tasks/GetTasksQueryHandler.cs @@ -1,24 +1,27 @@ -namespace Brizco.Repository.Handlers.Tasks; +using Brizco.Domain.Entities.Tasks; -public class GetActivitiesQueryHandler : IRequestHandler> +namespace Brizco.Repository.Handlers.Tasks; + +public class GetActivitiesQueryHandler(IRepositoryWrapper repositoryWrapper, ICurrentUserService currentUserService) : IRequestHandler> { - private readonly IRepositoryWrapper _repositoryWrapper; - private readonly ICurrentUserService _currentUserService; - - public GetActivitiesQueryHandler(IRepositoryWrapper repositoryWrapper, ICurrentUserService currentUserService) - { - _repositoryWrapper = repositoryWrapper; - _currentUserService = currentUserService; - } public async Task> 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().TableNoTracking + .Where(t => t.ComplexId == complexId && t.IsActivity == false); - var tasks = await _repositoryWrapper.SetRepository().TableNoTracking - .Where(t=>t.ComplexId==complexId && t.IsActivity == false) + if (request.ShiftId != null) + query = from taskShift in repositoryWrapper.SetRepository().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)