fix(TorobGetProducts) , fix(EmallsProducts), VER 1.0.4.5

- Fix torob product price to Tooman
- Fix emalls product price to Tooman
- Add version 1.0.4.5
subProduct
Amir Hossein Khademi 2024-06-11 12:55:02 +03:30
parent d2085e282d
commit da64ae5b40
14 changed files with 61 additions and 54 deletions

View File

@ -1 +1 @@
1.0.3.3 1.0.4.5

View File

@ -11,6 +11,9 @@ public class HealthController : ICarterModule
group.MapGet("", GetHealth) group.MapGet("", GetHealth)
.WithDisplayName("GetHealth") .WithDisplayName("GetHealth")
.HasApiVersion(1.0); .HasApiVersion(1.0);
group.MapGet("/error/test", () => { throw new Exception("Error test message");})
.WithDisplayName("GetHealth")
.HasApiVersion(1.0);
} }
public async Task<IResult> GetHealth([FromServices]ISiteMapService siteMapService) public async Task<IResult> GetHealth([FromServices]ISiteMapService siteMapService)

View File

@ -32,8 +32,8 @@ public class OrderBagController : ICarterModule
.HasApiVersion(1.0); .HasApiVersion(1.0);
group.MapPost("discount/{orderId}", AddDiscountToOrderBagAsync) group.MapPost("discount/{orderId}", DiscountActionOrderBagAsync)
.WithDisplayName("AddDiscountToOrderBag") .WithDisplayName("DiscountActionOrderBag")
.HasApiVersion(1.0); .HasApiVersion(1.0);
@ -62,8 +62,8 @@ public class OrderBagController : ICarterModule
public async Task<IResult> RemoveFromOrderBagAsync([FromBody] List<OrderBagRequestDto> requestDtos, IMediator mediator, CancellationToken cancellationToken) public async Task<IResult> RemoveFromOrderBagAsync([FromBody] List<OrderBagRequestDto> requestDtos, IMediator mediator, CancellationToken cancellationToken)
=> TypedResults.Ok(await mediator.Send(new RemoveFromOrderBagCommand(requestDtos), cancellationToken)); => TypedResults.Ok(await mediator.Send(new RemoveFromOrderBagCommand(requestDtos), cancellationToken));
public async Task<IResult> AddDiscountToOrderBagAsync(Guid orderId, [FromQuery] string discountCode, IMediator mediator, CancellationToken cancellationToken) public async Task<IResult> DiscountActionOrderBagAsync(Guid orderId, [FromQuery] string? discountCode, IMediator mediator, CancellationToken cancellationToken)
=> TypedResults.Ok(await mediator.Send(new SubmitDiscountCommand(orderId, discountCode), cancellationToken)); => TypedResults.Ok(await mediator.Send(new SubmitDiscountActionCommand(orderId, discountCode), cancellationToken));
public async Task<IResult> AddShippingToOrderBagAsync(Guid orderId, [FromBody] SubmitOrderDeliveryCommand request, IMediator mediator, CancellationToken cancellationToken) public async Task<IResult> AddShippingToOrderBagAsync(Guid orderId, [FromBody] SubmitOrderDeliveryCommand request, IMediator mediator, CancellationToken cancellationToken)
=> TypedResults.Ok(await mediator.Send(request with { OrderId = orderId }, cancellationToken)); => TypedResults.Ok(await mediator.Send(request with { OrderId = orderId }, cancellationToken));

View File

@ -22,8 +22,6 @@ RUN dotnet publish "./Netina.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish
FROM base AS final FROM base AS final
RUN apt-get update
RUN apt-get install-y libgdiplus
WORKDIR /app WORKDIR /app
COPY --from=publish /app/publish . COPY --from=publish /app/publish .

View File

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

View File

@ -96,7 +96,6 @@ builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
var app = builder.Build(); var app = builder.Build();
// Configure the HTTP request pipeline. // Configure the HTTP request pipeline.
//app.UseCustomSwagger(siteSetting.BaseUrl); //app.UseCustomSwagger(siteSetting.BaseUrl);

View File

@ -26,7 +26,7 @@
"ASPNETCORE_URLS": "http://+:80" "ASPNETCORE_URLS": "http://+:80"
}, },
"publishAllPorts": true, "publishAllPorts": true,
"DockerfileRunArguments": " --network=mother -p 32770:80" "DockerfileRunArguments": " --network=mother -p 32780:80"
} }
}, },
"$schema": "http://json.schemastore.org/launchsettings.json", "$schema": "http://json.schemastore.org/launchsettings.json",

View File

@ -1,7 +1,4 @@
using Netina.Common.Models.Api; using Refit;
using Netina.Common.Models.Exception;
using Netina.Core.Models.Api;
using Refit;
namespace Netina.Api.WebFramework.MiddleWares; namespace Netina.Api.WebFramework.MiddleWares;

View File

@ -51,11 +51,11 @@ public class GetEmallsProductsQueryHandler : IRequestHandler<GetEmallsProductsQu
}; };
if (product.Cost > product.CostWithDiscount) if (product.Cost > product.CostWithDiscount)
{ {
torobProduct.old_price = (int)product.Cost; torobProduct.old_price = (int)product.Cost / 10;
torobProduct.price = (int)product.CostWithDiscount; torobProduct.price = (int)product.CostWithDiscount / 10;
} }
else else
torobProduct.price = (int)product.Cost; torobProduct.price = (int)product.Cost / 10;
products.Add(torobProduct); products.Add(torobProduct);
} }

View File

@ -49,11 +49,11 @@ public class GetTorobProductsQueryHandler : IRequestHandler<GetTorobProductsQuer
}; };
if (product.Cost > product.CostWithDiscount) if (product.Cost > product.CostWithDiscount)
{ {
torobProduct.old_price = product.Cost; torobProduct.old_price = product.Cost / 10;
torobProduct.price = product.CostWithDiscount; torobProduct.price = product.CostWithDiscount / 10;
} }
else else
torobProduct.price = product.Cost; torobProduct.price = product.Cost / 10;
products.Add(torobProduct); products.Add(torobProduct);
} }

View File

@ -0,0 +1,40 @@
namespace Netina.Core.EntityServices.OrderBagHandlers;
public class SubmitDiscountActionCommandHandler : IRequestHandler<SubmitDiscountActionCommand, OrderSDto>
{
private readonly IRepositoryWrapper _repositoryWrapper;
private readonly IMediator _mediator;
public SubmitDiscountActionCommandHandler(IRepositoryWrapper repositoryWrapper, IMediator mediator)
{
_repositoryWrapper = repositoryWrapper;
_mediator = mediator;
}
public async Task<OrderSDto> Handle(SubmitDiscountActionCommand request, CancellationToken cancellationToken)
{
var order = await _repositoryWrapper.SetRepository<Order>()
.TableNoTracking
.FirstOrDefaultAsync(o => o.Id == request.OrderId, cancellationToken);
if (order == null)
throw new AppException("Order not found", ApiResultStatusCode.NotFound);
if (request.DiscountCode != null)
{
var discount = await _repositoryWrapper.SetRepository<Discount>()
.TableNoTracking
.FirstOrDefaultAsync(d => d.Code == request.DiscountCode, cancellationToken);
if (discount == null || discount.IsExpired())
throw new AppException("تخفیف منقضی شده است یا وجود ندارد", ApiResultStatusCode.NotFound);
order.SetDiscount(request.DiscountCode);
}
else
order.RemoveDiscount();
_repositoryWrapper.SetRepository<Order>().Update(order);
await _repositoryWrapper.SaveChangesAsync(cancellationToken);
var calculateOrder = await _mediator.Send(new CalculateOrderCommand(order.Id), cancellationToken);
return calculateOrder.AdaptToSDto();
}
}

View File

@ -1,32 +0,0 @@
namespace Netina.Core.EntityServices.OrderBagHandlers;
public class SubmitDiscountCommandHandler : IRequestHandler<SubmitDiscountCommand,OrderSDto>
{
private readonly IRepositoryWrapper _repositoryWrapper;
private readonly IMediator _mediator;
public SubmitDiscountCommandHandler(IRepositoryWrapper repositoryWrapper,IMediator mediator)
{
_repositoryWrapper = repositoryWrapper;
_mediator = mediator;
}
public async Task<OrderSDto> Handle(SubmitDiscountCommand request, CancellationToken cancellationToken)
{
var order = await _repositoryWrapper.SetRepository<Order>()
.TableNoTracking
.FirstOrDefaultAsync(o => o.Id == request.OrderId, cancellationToken);
if (order == null)
throw new AppException("Order not found", ApiResultStatusCode.NotFound);
var discount = await _repositoryWrapper.SetRepository<Discount>()
.TableNoTracking
.FirstOrDefaultAsync(d => d.Code == request.DiscountCode, cancellationToken);
if (discount == null || discount.IsExpired())
throw new AppException("تخفیف منقضی شده است یا وجود ندارد", ApiResultStatusCode.NotFound);
order.SetDiscount(request.DiscountCode);
_repositoryWrapper.SetRepository<Order>().Update(order);
await _repositoryWrapper.SaveChangesAsync(cancellationToken);
var calculateOrder = await _mediator.Send(new CalculateOrderCommand(order.Id), cancellationToken);
return calculateOrder.AdaptToSDto();
}
}

View File

@ -6,7 +6,7 @@ public sealed record CheckOrderBagCommand(List<CheckOrderBagRequestItem> OrderBa
public sealed record AddToOrderBagCommand(List<OrderBagRequestDto> RequestDtos) : IRequest<OrderSDto>; public sealed record AddToOrderBagCommand(List<OrderBagRequestDto> RequestDtos) : IRequest<OrderSDto>;
public sealed record RemoveFromOrderBagCommand(List<OrderBagRequestDto> RequestDtos) : IRequest<OrderSDto>; public sealed record RemoveFromOrderBagCommand(List<OrderBagRequestDto> RequestDtos) : IRequest<OrderSDto>;
public sealed record SubmitDiscountCommand(Guid OrderId,string DiscountCode) : IRequest<OrderSDto>; public sealed record SubmitDiscountActionCommand(Guid OrderId,string? DiscountCode) : IRequest<OrderSDto>;
public sealed record SubmitOrderDeliveryCommand(Guid AddressId, Guid OrderId, Guid ShippingId) : IRequest<OrderSDto>; public sealed record SubmitOrderDeliveryCommand(Guid AddressId, Guid OrderId, Guid ShippingId) : IRequest<OrderSDto>;
public sealed record SubmitOrderBagCommand(List<OrderBagRequestDto> RequestDtos) : IRequest<OrderSDto>; public sealed record SubmitOrderBagCommand(List<OrderBagRequestDto> RequestDtos) : IRequest<OrderSDto>;

View File

@ -61,6 +61,8 @@ public partial class Order
public void SetDiscount(string discountCode) public void SetDiscount(string discountCode)
=> DiscountCode = discountCode; => DiscountCode = discountCode;
public void RemoveDiscount()
=> DiscountCode = string.Empty;
public void AddOrderProduct(OrderProduct orderProduct) public void AddOrderProduct(OrderProduct orderProduct)
=> OrderProducts.Add(orderProduct); => OrderProducts.Add(orderProduct);