Compare commits

..

2 Commits

Author SHA1 Message Date
Amir Hossein Khademi 95346be5f1 feat(AddFeatureFastProduct) , fix(CheckUserDiscount) , fix(SideBar)
- Add feature in fast product create dialog box
- Fix user fist use discount check user
- Fix sidebar
2024-06-24 22:32:44 +03:30
Amir Hossein Khademi fd0f5696f4 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
2024-06-12 13:18:26 +03:30
14 changed files with 2119 additions and 31 deletions

View File

@ -1 +1 @@
1.0.6.7
1.0.7.10

View File

@ -1,6 +1,6 @@
{
"ConnectionStrings": {
"PostgresServer": "Host=185.220.227.107;Username=vesmmehAgent;Password=g05CTjK358Vx3Eoc9satsWyVwo+15UmsA2dnCrZRUYh1pLTe;Database=NetinaShopDB;Application Name=NetinaShopApi",
"PostgresServer": "Host=185.220.227.246;Username=vesmmehAgent;Password=g05CTjK358Vx3Eoc9satsWyVwo+15UmsA2dnCrZRUYh1pLTe;Database=NetinaShopDB;Application Name=NetinaShopApi",
"Postgres": "Host=pg-0,pg-1;Username=igarsonAgent;Password=xHTpBf4wC+bBeNg2pL6Ga7VEWKFJx7VPEUpqxwPFfOc2YYTVwFQuHfsiqoVeT9+6;Database=NetinaShopDB;Load Balance Hosts=true;Target Session Attributes=primary;Application Name=iGLS",
"MartenDB": "Host=pg-0,pg-1;Username=igarsonAgent;Password=xHTpBf4wC+bBeNg2pL6Ga7VEWKFJx7VPEUpqxwPFfOc2YYTVwFQuHfsiqoVeT9+6;Database=NetinaShopMartenDB;"
},

View File

@ -40,8 +40,15 @@ public class OrderController : ICarterModule
private async Task<IResult> 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<IResult> 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<IResult> 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<IResult> GetAsync(IMediator mediator, Guid id, CancellationToken cancellationToken = default)
{

View File

@ -6,8 +6,8 @@
<ImplicitUsings>enable</ImplicitUsings>
<InvariantGlobalization>true</InvariantGlobalization>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<AssemblyVersion>1.0.6.7</AssemblyVersion>
<FileVersion>1.0.6.7</FileVersion>
<AssemblyVersion>1.0.7.10</AssemblyVersion>
<FileVersion>1.0.7.10</FileVersion>
</PropertyGroup>
<ItemGroup>

View File

@ -142,7 +142,7 @@ public class ExceptionHandlerMiddleware
});
if (httpStatusCode == HttpStatusCode.InternalServerError)
context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
else
context.Response.StatusCode = (int)httpStatusCode;
context.Response.ContentType = "application/json";

View File

@ -27,8 +27,8 @@ public class CheckUserDiscountFirstUseCommandHandler : IRequestHandler<CheckUser
.FirstOrDefaultAsync(f => f.CustomerId == customer.Id && f.DiscountCode == request.DiscountCode,
cancellationToken);
if (discountedUserOrder != null)
return true;
return false;
return true;
}
else
throw new BaseApiException(ApiResultStatusCode.BadRequest,"UserId is wrong");

View File

@ -4,4 +4,4 @@ public sealed record GetOrderLDtoQuery(Guid Id) : IRequest<OrderLDto>;
public sealed record GetUserOrdersQuery(Guid CustomerId = default) : IRequest<List<OrderSDto>>;
public sealed record GetOrderQuery(Guid Id) : IRequest<Order>;
public sealed record GetOrdersQuery(OrderQueryDateFilter? DateFilter, OrderStatus? OrderStatus,long? SelectedDate,string? FactorCode, int Page = 0) : IRequest<List<OrderSDto>>;
public sealed record GetOrdersQuery(OrderQueryDateFilter? DateFilter, OrderStatus? OrderStatus,long? SelectedDate,string? FactorCode,bool OrderBags, int Page = 0) : IRequest<List<OrderSDto>>;

View File

@ -13,6 +13,7 @@ public class ApplicationUser : IdentityUser<Guid>
public DateTime BirthDate { get; set; }
public Gender Gender { get; set; }
public SignUpStatus SignUpStatus { get; set; }
public List<UserAddress> Addresses { get; set; } = new();
public Manager? Manager { get; set; }
public Customer? Customer { get; set; }

View File

@ -5,7 +5,6 @@
[GenerateMapper]
public class Customer : ApiEntity
{
public List<UserAddress> Addresses { get; set; } = new();
public Guid UserId { get; set; }
public ApplicationUser? User { get; set; }
}

View File

@ -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
}

View File

@ -18,6 +18,10 @@ public class GetOrdersQueryHandler : IRequestHandler<GetOrdersQuery,List<OrderSD
.SetRepository<Order>()
.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<GetOrdersQuery,List<OrderSD
if (request.OrderStatus != null)
orders = orders.Where(o => 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;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,56 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace NetinaShop.Repository.Migrations
{
/// <inheritdoc />
public partial class EditUserAddress : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_UserAddresses_Customers_CustomerId",
schema: "public",
table: "UserAddresses");
migrationBuilder.DropIndex(
name: "IX_UserAddresses_CustomerId",
schema: "public",
table: "UserAddresses");
migrationBuilder.DropColumn(
name: "CustomerId",
schema: "public",
table: "UserAddresses");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<Guid>(
name: "CustomerId",
schema: "public",
table: "UserAddresses",
type: "uuid",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_UserAddresses_CustomerId",
schema: "public",
table: "UserAddresses",
column: "CustomerId");
migrationBuilder.AddForeignKey(
name: "FK_UserAddresses_Customers_CustomerId",
schema: "public",
table: "UserAddresses",
column: "CustomerId",
principalSchema: "public",
principalTable: "Customers",
principalColumn: "Id");
}
}
}

View File

@ -1405,9 +1405,6 @@ namespace NetinaShop.Repository.Migrations
.IsRequired()
.HasColumnType("text");
b.Property<Guid?>("CustomerId")
.HasColumnType("uuid");
b.Property<bool>("IsRemoved")
.HasColumnType("boolean");
@ -1456,8 +1453,6 @@ namespace NetinaShop.Repository.Migrations
b.HasKey("Id");
b.HasIndex("CustomerId");
b.HasIndex("UserId");
b.ToTable("UserAddresses", "public");
@ -1874,12 +1869,8 @@ namespace NetinaShop.Repository.Migrations
modelBuilder.Entity("Netina.Domain.Entities.Users.UserAddress", b =>
{
b.HasOne("Netina.Domain.Entities.Users.Customer", null)
.WithMany("Addresses")
.HasForeignKey("CustomerId");
b.HasOne("Netina.Domain.Entities.Users.ApplicationUser", "User")
.WithMany()
.WithMany("Addresses")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Restrict);
@ -2019,6 +2010,8 @@ namespace NetinaShop.Repository.Migrations
modelBuilder.Entity("Netina.Domain.Entities.Users.ApplicationUser", b =>
{
b.Navigation("Addresses");
b.Navigation("Customer");
b.Navigation("Manager");
@ -2026,11 +2019,6 @@ namespace NetinaShop.Repository.Migrations
b.Navigation("Marketer");
});
modelBuilder.Entity("Netina.Domain.Entities.Users.Customer", b =>
{
b.Navigation("Addresses");
});
modelBuilder.Entity("Netina.Domain.Entities.Users.Marketer", b =>
{
b.Navigation("Discount");