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.5subProduct
parent
d2085e282d
commit
da64ae5b40
|
@ -11,6 +11,9 @@ public class HealthController : ICarterModule
|
|||
group.MapGet("", GetHealth)
|
||||
.WithDisplayName("GetHealth")
|
||||
.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)
|
||||
|
|
|
@ -32,8 +32,8 @@ public class OrderBagController : ICarterModule
|
|||
.HasApiVersion(1.0);
|
||||
|
||||
|
||||
group.MapPost("discount/{orderId}", AddDiscountToOrderBagAsync)
|
||||
.WithDisplayName("AddDiscountToOrderBag")
|
||||
group.MapPost("discount/{orderId}", DiscountActionOrderBagAsync)
|
||||
.WithDisplayName("DiscountActionOrderBag")
|
||||
.HasApiVersion(1.0);
|
||||
|
||||
|
||||
|
@ -62,8 +62,8 @@ public class OrderBagController : ICarterModule
|
|||
public async Task<IResult> RemoveFromOrderBagAsync([FromBody] List<OrderBagRequestDto> requestDtos, IMediator mediator, CancellationToken cancellationToken)
|
||||
=> TypedResults.Ok(await mediator.Send(new RemoveFromOrderBagCommand(requestDtos), cancellationToken));
|
||||
|
||||
public async Task<IResult> AddDiscountToOrderBagAsync(Guid orderId, [FromQuery] string discountCode, IMediator mediator, CancellationToken cancellationToken)
|
||||
=> TypedResults.Ok(await mediator.Send(new SubmitDiscountCommand(orderId, discountCode), cancellationToken));
|
||||
public async Task<IResult> DiscountActionOrderBagAsync(Guid orderId, [FromQuery] string? discountCode, IMediator mediator, CancellationToken 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)
|
||||
=> TypedResults.Ok(await mediator.Send(request with { OrderId = orderId }, cancellationToken));
|
||||
|
|
|
@ -22,8 +22,6 @@ RUN dotnet publish "./Netina.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish
|
|||
FROM base AS final
|
||||
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install-y libgdiplus
|
||||
|
||||
WORKDIR /app
|
||||
COPY --from=publish /app/publish .
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<InvariantGlobalization>true</InvariantGlobalization>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
<AssemblyVersion>1.0.3.3</AssemblyVersion>
|
||||
<FileVersion>1.0.3.3</FileVersion>
|
||||
<AssemblyVersion>1.0.4.5</AssemblyVersion>
|
||||
<FileVersion>1.0.4.5</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -96,7 +96,6 @@ builder.Host.ConfigureContainer<ContainerBuilder>(builder =>
|
|||
|
||||
var app = builder.Build();
|
||||
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
|
||||
//app.UseCustomSwagger(siteSetting.BaseUrl);
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
"ASPNETCORE_URLS": "http://+:80"
|
||||
},
|
||||
"publishAllPorts": true,
|
||||
"DockerfileRunArguments": " --network=mother -p 32770:80"
|
||||
"DockerfileRunArguments": " --network=mother -p 32780:80"
|
||||
}
|
||||
},
|
||||
"$schema": "http://json.schemastore.org/launchsettings.json",
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
using Netina.Common.Models.Api;
|
||||
using Netina.Common.Models.Exception;
|
||||
using Netina.Core.Models.Api;
|
||||
using Refit;
|
||||
using Refit;
|
||||
|
||||
namespace Netina.Api.WebFramework.MiddleWares;
|
||||
|
||||
|
|
|
@ -51,11 +51,11 @@ public class GetEmallsProductsQueryHandler : IRequestHandler<GetEmallsProductsQu
|
|||
};
|
||||
if (product.Cost > product.CostWithDiscount)
|
||||
{
|
||||
torobProduct.old_price = (int)product.Cost;
|
||||
torobProduct.price = (int)product.CostWithDiscount;
|
||||
torobProduct.old_price = (int)product.Cost / 10;
|
||||
torobProduct.price = (int)product.CostWithDiscount / 10;
|
||||
}
|
||||
else
|
||||
torobProduct.price = (int)product.Cost;
|
||||
torobProduct.price = (int)product.Cost / 10;
|
||||
products.Add(torobProduct);
|
||||
}
|
||||
|
||||
|
|
|
@ -49,11 +49,11 @@ public class GetTorobProductsQueryHandler : IRequestHandler<GetTorobProductsQuer
|
|||
};
|
||||
if (product.Cost > product.CostWithDiscount)
|
||||
{
|
||||
torobProduct.old_price = product.Cost;
|
||||
torobProduct.price = product.CostWithDiscount;
|
||||
torobProduct.old_price = product.Cost / 10;
|
||||
torobProduct.price = product.CostWithDiscount / 10;
|
||||
}
|
||||
else
|
||||
torobProduct.price = product.Cost;
|
||||
torobProduct.price = product.Cost / 10;
|
||||
products.Add(torobProduct);
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -6,7 +6,7 @@ public sealed record CheckOrderBagCommand(List<CheckOrderBagRequestItem> OrderBa
|
|||
public sealed record AddToOrderBagCommand(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 SubmitOrderBagCommand(List<OrderBagRequestDto> RequestDtos) : IRequest<OrderSDto>;
|
||||
|
|
|
@ -61,6 +61,8 @@ public partial class Order
|
|||
|
||||
public void SetDiscount(string discountCode)
|
||||
=> DiscountCode = discountCode;
|
||||
public void RemoveDiscount()
|
||||
=> DiscountCode = string.Empty;
|
||||
public void AddOrderProduct(OrderProduct orderProduct)
|
||||
=> OrderProducts.Add(orderProduct);
|
||||
|
||||
|
|
Loading…
Reference in New Issue