From fd0f5696f454ed7b6a2e244d938c8ab185497cc2 Mon Sep 17 00:00:00 2001 From: "Amir.H Khademi" Date: Wed, 12 Jun 2024 13:18:26 +0330 Subject: [PATCH] fix(no-scrollbar) , fix(OrdersPagePagination) , feat(ShowOrderBagQuery) -Fix no-scrollbar in pages -Fix orders page pageination at page 2 -Add show order bag query in GetOrders --- Netina.Api/Controllers/OrderController.cs | 11 +++++++++-- Netina.Domain/CommandQueries/Queries/OrderQueries.cs | 2 +- Netina.Domain/Entities/Users/ApplicationUser.cs | 1 + Netina.Domain/Entities/Users/Customer.cs | 1 - Netina.Domain/Enums/PaymentType.cs | 8 ++++---- .../Handlers/Orders/GetOrdersQueryHandler.cs | 7 ++++++- 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Netina.Api/Controllers/OrderController.cs b/Netina.Api/Controllers/OrderController.cs index 65e8297..4a06093 100644 --- a/Netina.Api/Controllers/OrderController.cs +++ b/Netina.Api/Controllers/OrderController.cs @@ -40,8 +40,15 @@ public class OrderController : ICarterModule private async Task ConfirmOrderStepAsync(Guid id, [FromQuery] OrderStatus nextOrderStatus, [FromQuery]string? trackingCode, [FromServices] IMediator mediator, CancellationToken cancellationToken) => TypedResults.Ok(await mediator.Send(new ConfirmOrderStepCommand(id, nextOrderStatus,TrackingCode:trackingCode), cancellationToken)); - public async Task GetAllAsync(IMediator mediator, [FromQuery]string? factorCode, [FromQuery]long? selectedDate, [FromQuery] OrderStatus? orderStatus, [FromQuery] OrderQueryDateFilter? dateFilter, [FromQuery] int page = 0, CancellationToken cancellationToken = default) - => TypedResults.Ok(await mediator.Send(new GetOrdersQuery(Page:page, FactorCode:factorCode , SelectedDate: selectedDate, OrderStatus:orderStatus, DateFilter:dateFilter), cancellationToken)); + public async Task GetAllAsync(IMediator mediator, + [FromQuery]string? factorCode, + [FromQuery]long? selectedDate, + [FromQuery]OrderStatus? orderStatus, + [FromQuery]OrderQueryDateFilter? dateFilter, + [FromQuery]bool? orderBags, + [FromQuery]int page = 0, + CancellationToken cancellationToken = default) + => TypedResults.Ok(await mediator.Send(new GetOrdersQuery(Page:page, FactorCode:factorCode ,OrderBags:orderBags??false , SelectedDate: selectedDate, OrderStatus:orderStatus, DateFilter:dateFilter), cancellationToken)); public async Task GetAsync(IMediator mediator, Guid id, CancellationToken cancellationToken = default) { diff --git a/Netina.Domain/CommandQueries/Queries/OrderQueries.cs b/Netina.Domain/CommandQueries/Queries/OrderQueries.cs index 2e0075a..d06fd05 100644 --- a/Netina.Domain/CommandQueries/Queries/OrderQueries.cs +++ b/Netina.Domain/CommandQueries/Queries/OrderQueries.cs @@ -4,4 +4,4 @@ public sealed record GetOrderLDtoQuery(Guid Id) : IRequest; public sealed record GetUserOrdersQuery(Guid CustomerId = default) : IRequest>; public sealed record GetOrderQuery(Guid Id) : IRequest; -public sealed record GetOrdersQuery(OrderQueryDateFilter? DateFilter, OrderStatus? OrderStatus,long? SelectedDate,string? FactorCode, int Page = 0) : IRequest>; \ No newline at end of file +public sealed record GetOrdersQuery(OrderQueryDateFilter? DateFilter, OrderStatus? OrderStatus,long? SelectedDate,string? FactorCode,bool OrderBags, int Page = 0) : IRequest>; \ No newline at end of file diff --git a/Netina.Domain/Entities/Users/ApplicationUser.cs b/Netina.Domain/Entities/Users/ApplicationUser.cs index bb5099d..e37aa41 100644 --- a/Netina.Domain/Entities/Users/ApplicationUser.cs +++ b/Netina.Domain/Entities/Users/ApplicationUser.cs @@ -13,6 +13,7 @@ public class ApplicationUser : IdentityUser public DateTime BirthDate { get; set; } public Gender Gender { get; set; } public SignUpStatus SignUpStatus { get; set; } + public List Addresses { get; set; } = new(); public Manager? Manager { get; set; } public Customer? Customer { get; set; } diff --git a/Netina.Domain/Entities/Users/Customer.cs b/Netina.Domain/Entities/Users/Customer.cs index fc30b3e..152ace2 100644 --- a/Netina.Domain/Entities/Users/Customer.cs +++ b/Netina.Domain/Entities/Users/Customer.cs @@ -5,7 +5,6 @@ [GenerateMapper] public class Customer : ApiEntity { - public List Addresses { get; set; } = new(); public Guid UserId { get; set; } public ApplicationUser? User { get; set; } } \ No newline at end of file diff --git a/Netina.Domain/Enums/PaymentType.cs b/Netina.Domain/Enums/PaymentType.cs index 96c18b8..fdc6ada 100644 --- a/Netina.Domain/Enums/PaymentType.cs +++ b/Netina.Domain/Enums/PaymentType.cs @@ -3,11 +3,11 @@ public enum PaymentType { [Display(Name = "نقدی")] - Cash, + Cash = 0, [Display(Name = "کارت به کارت")] - CardTransfer, + CardTransfer = 1, [Display(Name = "آنلاین")] - Online, + Online = 2, [Display(Name = "در محل")] - PayOnDoor + PayOnDoor = 3 } \ No newline at end of file diff --git a/Netina.Repository/Handlers/Orders/GetOrdersQueryHandler.cs b/Netina.Repository/Handlers/Orders/GetOrdersQueryHandler.cs index 39374a4..4997560 100644 --- a/Netina.Repository/Handlers/Orders/GetOrdersQueryHandler.cs +++ b/Netina.Repository/Handlers/Orders/GetOrdersQueryHandler.cs @@ -18,6 +18,10 @@ public class GetOrdersQueryHandler : IRequestHandler() .TableNoTracking; + if (request.OrderBags) + orders = orders.Where(o => o.OrderStatus == OrderStatus.OrderBag); + else + orders = orders.Where(o => o.OrderStatus != OrderStatus.OrderBag); if (request.FactorCode != null) orders = orders.Where(o => o.FactorCode.Trim().ToUpper().Contains(request.FactorCode.Trim().ToUpper())); @@ -49,12 +53,13 @@ public class GetOrdersQueryHandler : IRequestHandler o.OrderStatus == request.OrderStatus.Value); - return await orders + var dtos = await orders .OrderByDescending(o=>o.CreatedAt) .Skip(request.Page * 15) .Take(15) .Select(OrderMapper.ProjectToSDto) .ToListAsync(cancellationToken); + return dtos; } } \ No newline at end of file