feat : add ver 0.10.16.23 , complete coperate slae system
parent
6ac4024ea9
commit
07982e63ad
|
@ -16,6 +16,10 @@ public class DiscountController : ICarterModule
|
|||
.WithDisplayName("GetDiscount")
|
||||
.HasApiVersion(1.0);
|
||||
|
||||
group.MapGet("corporate", GetCorporateDiscountAsync)
|
||||
.WithDisplayName("GetDiscount")
|
||||
.HasApiVersion(1.0);
|
||||
|
||||
group.MapPost("", Post)
|
||||
.HasApiVersion(1.0);
|
||||
|
||||
|
@ -26,26 +30,30 @@ public class DiscountController : ICarterModule
|
|||
.HasApiVersion(1.0);
|
||||
}
|
||||
|
||||
private async Task<IResult> GetCorporateDiscountAsync([FromQuery] Guid? corporateUserId, [FromServices] IMediator mediator, CancellationToken cancellationToken)
|
||||
=> TypedResults.Ok(await mediator.Send(
|
||||
new CreateSaleCooperationDiscount(CorporateUserId: corporateUserId ?? default), cancellationToken));
|
||||
|
||||
// GET:Get All Entity
|
||||
public async Task<IResult> GetAllAsync([FromQuery] int page, IMediator mediator,
|
||||
private async Task<IResult> GetAllAsync([FromQuery] int page, IMediator mediator,
|
||||
CancellationToken cancellationToken)
|
||||
=> TypedResults.Ok(await mediator.Send(new GetDiscountsQuery(page), cancellationToken));
|
||||
|
||||
// GET:Get An Entity By Id
|
||||
public async Task<IResult> GetAsync(Guid id, IMediator mediator, CancellationToken cancellationToken)
|
||||
private async Task<IResult> GetAsync(Guid id, IMediator mediator, CancellationToken cancellationToken)
|
||||
=> TypedResults.Ok(await mediator.Send(new GetDiscountQuery(id), cancellationToken));
|
||||
|
||||
// POST:Create Entity
|
||||
public async Task<IResult> Post([FromBody] CreateDiscountCommand request, IMediator mediator,
|
||||
private async Task<IResult> Post([FromBody] CreateDiscountCommand request, IMediator mediator,
|
||||
CancellationToken cancellationToken)
|
||||
=> TypedResults.Ok(await mediator.Send(request, cancellationToken));
|
||||
|
||||
// PUT:Update Entity
|
||||
public async Task<IResult> Put([FromBody] UpdateDiscountCommand request, IMediator mediator,
|
||||
private async Task<IResult> Put([FromBody] UpdateDiscountCommand request, IMediator mediator,
|
||||
CancellationToken cancellationToken)
|
||||
=> TypedResults.Ok(await mediator.Send(request, cancellationToken));
|
||||
|
||||
// DELETE:Delete Entity
|
||||
public async Task<IResult> Delete(Guid id, IMediator mediator, CancellationToken cancellationToken)
|
||||
private async Task<IResult> Delete(Guid id, IMediator mediator, CancellationToken cancellationToken)
|
||||
=> TypedResults.Ok(await mediator.Send(new DeleteDiscountCommand(id), cancellationToken));
|
||||
}
|
|
@ -6,8 +6,8 @@
|
|||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<InvariantGlobalization>true</InvariantGlobalization>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
<AssemblyVersion>0.9.16.23</AssemblyVersion>
|
||||
<FileVersion>0.9.16.23</FileVersion>
|
||||
<AssemblyVersion>0.10.16.23</AssemblyVersion>
|
||||
<FileVersion>0.10.16.23</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -9,6 +9,7 @@ DiscountType Type,
|
|||
int Count,
|
||||
DateTime StartDate,
|
||||
DateTime ExpireDate,
|
||||
bool IsImmortal,
|
||||
long PriceFloor,
|
||||
bool HasPriceFloor,
|
||||
long PriceCeiling,
|
||||
|
@ -20,7 +21,8 @@ bool IsSpecialOffer,
|
|||
Guid ProductId,
|
||||
Guid CategoryId) : IRequest<DiscountLDto>;
|
||||
|
||||
public sealed record UpdateDiscountCommand(Guid Id,
|
||||
public sealed record UpdateDiscountCommand(
|
||||
Guid Id,
|
||||
string Code,
|
||||
int DiscountPercent,
|
||||
long DiscountAmount,
|
||||
|
@ -30,6 +32,7 @@ public sealed record UpdateDiscountCommand(Guid Id,
|
|||
int Count,
|
||||
DateTime StartDate,
|
||||
DateTime ExpireDate,
|
||||
bool IsImmortal,
|
||||
long PriceFloor,
|
||||
bool HasPriceFloor,
|
||||
long PriceCeiling,
|
||||
|
@ -41,6 +44,8 @@ public sealed record UpdateDiscountCommand(Guid Id,
|
|||
Guid ProductId,
|
||||
Guid CategoryId) : IRequest<bool>;
|
||||
|
||||
public sealed record CreateSaleCooperationDiscount(Guid CorporateUserId) : IRequest<string>;
|
||||
|
||||
public sealed record DeleteDiscountCommand(Guid Id) : IRequest<bool>;
|
||||
|
||||
public sealed record CalculateOrderDiscountCommand(string DiscountCode,Order Order) : IRequest<double>;
|
|
@ -11,6 +11,7 @@ public class DiscountLDto : BaseDto<DiscountLDto,Discount>
|
|||
public int Count { get; set; }
|
||||
public DateTime StartDate { get; set; }
|
||||
public DateTime ExpireDate { get; set; }
|
||||
public bool Immortal { get; set; }
|
||||
public long PriceFloor { get; set; }
|
||||
public bool HasPriceFloor { get; set; }
|
||||
public long PriceCeiling { get; set; }
|
||||
|
|
|
@ -9,9 +9,9 @@ public partial class CategoryDiscount : Discount
|
|||
|
||||
}
|
||||
|
||||
public CategoryDiscount(string code, int discountPercent, long discountAmount, bool hasCode, DiscountAmountType amountType, DiscountType type, int count, DateTime startDate, DateTime expireDate, long priceFloor, bool hasPriceFloor, long priceCeiling, bool hasPriceCeiling, bool isInfinity, long useCount, bool isForInvitation,bool isSpecialOffer, Guid categoryId)
|
||||
public CategoryDiscount(string code, int discountPercent, long discountAmount, bool hasCode, DiscountAmountType amountType, DiscountType type, int count,bool immortal, DateTime startDate, DateTime expireDate, long priceFloor, bool hasPriceFloor, long priceCeiling, bool hasPriceCeiling, bool isInfinity, long useCount, bool isForInvitation,bool isSpecialOffer, Guid categoryId)
|
||||
: base(code, discountPercent, discountAmount, hasCode, amountType, type, count, startDate, expireDate, priceFloor, hasPriceFloor, priceCeiling, hasPriceCeiling, isInfinity, useCount,
|
||||
isForInvitation, isSpecialOffer)
|
||||
isForInvitation, isSpecialOffer, immortal)
|
||||
{
|
||||
CategoryId = categoryId;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
public partial class Discount
|
||||
{
|
||||
public static Discount Create(string code, int discountPercent, long discountAmount, bool hasCode, DiscountAmountType amountType, DiscountType type, int count, DateTime startDate, DateTime expireDate, long priceFloor, bool hasPriceFloor, long priceCeiling, bool hasPriceCeiling, bool isInfinity, long useCount, bool isForInvitation,bool isSpecialOffer)
|
||||
public static Discount Create(string code, int discountPercent, long discountAmount, bool hasCode, DiscountAmountType amountType, DiscountType type, int count,bool immortal, DateTime startDate, DateTime expireDate, long priceFloor, bool hasPriceFloor, long priceCeiling, bool hasPriceCeiling, bool isInfinity, long useCount, bool isForInvitation,bool isSpecialOffer)
|
||||
{
|
||||
return new Discount(code,
|
||||
discountPercent,
|
||||
|
@ -20,18 +20,25 @@ public partial class Discount
|
|||
isInfinity,
|
||||
useCount,
|
||||
isForInvitation,
|
||||
isSpecialOffer);
|
||||
isSpecialOffer,
|
||||
immortal);
|
||||
}
|
||||
|
||||
public bool IsExpired()
|
||||
=> ExpireDate.Date < DateTime.Today.Date;
|
||||
=> !Immortal && ExpireDate.Date < DateTime.Today.Date;
|
||||
|
||||
public void SetCorporate(Guid userId)
|
||||
{
|
||||
IsForSaleCooperation = true;
|
||||
CorporateUserId = userId;
|
||||
}
|
||||
}
|
||||
|
||||
public partial class ProductDiscount
|
||||
{
|
||||
public static ProductDiscount Create(string code, int discountPercent, long discountAmount, bool hasCode, DiscountAmountType amountType, DiscountType type, int count, DateTime startDate, DateTime expireDate, long priceFloor, bool hasPriceFloor, long priceCeiling, bool hasPriceCeiling, bool isInfinity, long useCount, bool isForInvitation ,bool isSpecialOffer, Guid productId)
|
||||
public static ProductDiscount Create(string code, int discountPercent, long discountAmount, bool hasCode, DiscountAmountType amountType, DiscountType type, int count, bool immortal, DateTime startDate, DateTime expireDate, long priceFloor, bool hasPriceFloor, long priceCeiling, bool hasPriceCeiling, bool isInfinity, long useCount, bool isForInvitation ,bool isSpecialOffer, Guid productId)
|
||||
{
|
||||
return new ProductDiscount(code, discountPercent, discountAmount, hasCode, amountType, type, count, startDate,
|
||||
return new ProductDiscount(code, discountPercent, discountAmount, hasCode, amountType, type, count,immortal, startDate,
|
||||
expireDate, priceFloor, hasPriceFloor, priceCeiling, hasPriceCeiling, isInfinity, useCount,
|
||||
isForInvitation, isSpecialOffer, productId);
|
||||
}
|
||||
|
@ -39,9 +46,9 @@ public partial class ProductDiscount
|
|||
|
||||
public partial class CategoryDiscount
|
||||
{
|
||||
public static CategoryDiscount Create(string code, int discountPercent, long discountAmount, bool hasCode, DiscountAmountType amountType, DiscountType type, int count, DateTime startDate, DateTime expireDate, long priceFloor, bool hasPriceFloor, long priceCeiling, bool hasPriceCeiling, bool isInfinity, long useCount, bool isForInvitation, bool isSpecialOffer, Guid categoryId)
|
||||
public static CategoryDiscount Create(string code, int discountPercent, long discountAmount, bool hasCode, DiscountAmountType amountType, DiscountType type, int count, bool immortal, DateTime startDate, DateTime expireDate, long priceFloor, bool hasPriceFloor, long priceCeiling, bool hasPriceCeiling, bool isInfinity, long useCount, bool isForInvitation, bool isSpecialOffer, Guid categoryId)
|
||||
{
|
||||
return new CategoryDiscount(code, discountPercent, discountAmount, hasCode, amountType, type, count, startDate,
|
||||
return new CategoryDiscount(code, discountPercent, discountAmount, hasCode, amountType, type, count,immortal, startDate,
|
||||
expireDate, priceFloor, hasPriceFloor, priceCeiling, hasPriceCeiling, isInfinity, useCount,
|
||||
isForInvitation,isSpecialOffer, categoryId);
|
||||
}
|
||||
|
|
|
@ -28,7 +28,8 @@ public partial class Discount : ApiEntity
|
|||
bool isInfinity,
|
||||
long useCount,
|
||||
bool isForInvitation,
|
||||
bool isSpecialOffer)
|
||||
bool isSpecialOffer,
|
||||
bool immortal)
|
||||
{
|
||||
Code = code;
|
||||
DiscountPercent = discountPercent;
|
||||
|
@ -47,6 +48,7 @@ public partial class Discount : ApiEntity
|
|||
UseCount = useCount;
|
||||
IsForInvitation = isForInvitation;
|
||||
IsSpecialOffer = isSpecialOffer;
|
||||
Immortal = immortal;
|
||||
}
|
||||
public string Code { get; internal set; } = string.Empty;
|
||||
public int DiscountPercent { get; internal set; }
|
||||
|
@ -57,6 +59,7 @@ public partial class Discount : ApiEntity
|
|||
public int Count { get; internal set; }
|
||||
public DateTime StartDate { get; internal set; }
|
||||
public DateTime ExpireDate { get; internal set; }
|
||||
public bool Immortal { get; internal set; }
|
||||
public long PriceFloor { get; internal set; }
|
||||
public bool HasPriceFloor { get; internal set; }
|
||||
public long PriceCeiling { get; internal set; }
|
||||
|
@ -65,6 +68,11 @@ public partial class Discount : ApiEntity
|
|||
public long UseCount { get; internal set; }
|
||||
public bool IsSpecialOffer { get; internal set; }
|
||||
public bool IsForInvitation { get; internal set; }
|
||||
public bool IsForSaleCooperation { get; internal set; }
|
||||
|
||||
|
||||
public Guid? CorporateUserId { get; internal set; }
|
||||
public ApplicationUser? CorporateUser { get; internal set; }
|
||||
|
||||
public List<Order> Orders { get; internal set; } = new();
|
||||
}
|
|
@ -7,8 +7,8 @@ public partial class ProductDiscount : Discount
|
|||
|
||||
}
|
||||
|
||||
public ProductDiscount(string code, int discountPercent, long discountAmount, bool hasCode, DiscountAmountType amountType, DiscountType type, int count, DateTime startDate, DateTime expireDate, long priceFloor, bool hasPriceFloor, long priceCeiling, bool hasPriceCeiling, bool isInfinity, long useCount, bool isForInvitation,bool isSpecialOffer,Guid productId)
|
||||
: base(code, discountPercent, discountAmount, hasCode, amountType, type, count, startDate, expireDate, priceFloor, hasPriceFloor, priceCeiling, hasPriceCeiling, isInfinity, useCount, isForInvitation, isSpecialOffer)
|
||||
public ProductDiscount(string code, int discountPercent, long discountAmount, bool hasCode, DiscountAmountType amountType, DiscountType type, int count, bool immortal, DateTime startDate, DateTime expireDate, long priceFloor, bool hasPriceFloor, long priceCeiling, bool hasPriceCeiling, bool isInfinity, long useCount, bool isForInvitation,bool isSpecialOffer,Guid productId)
|
||||
: base(code, discountPercent, discountAmount, hasCode, amountType, type, count, startDate, expireDate, priceFloor, hasPriceFloor, priceCeiling, hasPriceCeiling, isInfinity, useCount, isForInvitation, isSpecialOffer, immortal)
|
||||
{
|
||||
ProductId = productId;
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ namespace NetinaShop.Domain.Mappers
|
|||
Count = p1.Count,
|
||||
StartDate = p1.StartDate,
|
||||
ExpireDate = p1.ExpireDate,
|
||||
Immortal = p1.Immortal,
|
||||
PriceFloor = p1.PriceFloor,
|
||||
HasPriceFloor = p1.HasPriceFloor,
|
||||
PriceCeiling = p1.PriceCeiling,
|
||||
|
@ -50,6 +51,7 @@ namespace NetinaShop.Domain.Mappers
|
|||
result.Count = p2.Count;
|
||||
result.StartDate = p2.StartDate;
|
||||
result.ExpireDate = p2.ExpireDate;
|
||||
result.Immortal = p2.Immortal;
|
||||
result.PriceFloor = p2.PriceFloor;
|
||||
result.HasPriceFloor = p2.HasPriceFloor;
|
||||
result.PriceCeiling = p2.PriceCeiling;
|
||||
|
@ -74,6 +76,7 @@ namespace NetinaShop.Domain.Mappers
|
|||
Count = p4.Count,
|
||||
StartDate = p4.StartDate,
|
||||
ExpireDate = p4.ExpireDate,
|
||||
Immortal = p4.Immortal,
|
||||
PriceFloor = p4.PriceFloor,
|
||||
HasPriceFloor = p4.HasPriceFloor,
|
||||
PriceCeiling = p4.PriceCeiling,
|
||||
|
@ -98,6 +101,7 @@ namespace NetinaShop.Domain.Mappers
|
|||
Count = p5.Count,
|
||||
StartDate = p5.StartDate,
|
||||
ExpireDate = p5.ExpireDate,
|
||||
Immortal = p5.Immortal,
|
||||
PriceFloor = p5.PriceFloor,
|
||||
HasPriceFloor = p5.HasPriceFloor,
|
||||
PriceCeiling = p5.PriceCeiling,
|
||||
|
@ -127,6 +131,7 @@ namespace NetinaShop.Domain.Mappers
|
|||
result.Count = p6.Count;
|
||||
result.StartDate = p6.StartDate;
|
||||
result.ExpireDate = p6.ExpireDate;
|
||||
result.Immortal = p6.Immortal;
|
||||
result.PriceFloor = p6.PriceFloor;
|
||||
result.HasPriceFloor = p6.HasPriceFloor;
|
||||
result.PriceCeiling = p6.PriceCeiling;
|
||||
|
@ -151,6 +156,7 @@ namespace NetinaShop.Domain.Mappers
|
|||
Count = p8.Count,
|
||||
StartDate = p8.StartDate,
|
||||
ExpireDate = p8.ExpireDate,
|
||||
Immortal = p8.Immortal,
|
||||
PriceFloor = p8.PriceFloor,
|
||||
HasPriceFloor = p8.HasPriceFloor,
|
||||
PriceCeiling = p8.PriceCeiling,
|
||||
|
|
|
@ -13,12 +13,12 @@ public class CreateDiscountCommandHandler : IRequestHandler<CreateDiscountComman
|
|||
switch (request.Type)
|
||||
{
|
||||
case DiscountType.All:
|
||||
var ent = Discount.Create(request.Code, request.DiscountPercent, request.DiscountAmount, request.HasCode, request.AmountType, request.Type, request.Count, request.StartDate, request.ExpireDate, request.PriceFloor, request.HasPriceFloor, request.PriceCeiling, request.HasPriceCeiling, request.IsInfinity, request.UseCount, request.IsForInvitation,request.IsSpecialOffer);
|
||||
var ent = Discount.Create(request.Code, request.DiscountPercent, request.DiscountAmount, request.HasCode, request.AmountType, request.Type, request.Count,request.IsImmortal, request.StartDate, request.ExpireDate, request.PriceFloor, request.HasPriceFloor, request.PriceCeiling, request.HasPriceCeiling, request.IsInfinity, request.UseCount, request.IsForInvitation,request.IsSpecialOffer);
|
||||
_repositoryWrapper.SetRepository<Discount>().Add(ent);
|
||||
break;
|
||||
case DiscountType.Category:
|
||||
var catDis = CategoryDiscount.Create(request.Code, request.DiscountPercent, request.DiscountAmount, request.HasCode,
|
||||
request.AmountType, request.Type, request.Count, request.StartDate, request.ExpireDate, request.PriceFloor,
|
||||
request.AmountType, request.Type, request.Count,request.IsImmortal, request.StartDate, request.ExpireDate, request.PriceFloor,
|
||||
request.HasPriceFloor, request.PriceCeiling, request.HasPriceCeiling, request.IsInfinity, request.UseCount,
|
||||
request.IsForInvitation,request.IsSpecialOffer, request.CategoryId);
|
||||
_repositoryWrapper.SetRepository<CategoryDiscount>().Add(catDis);
|
||||
|
@ -26,14 +26,14 @@ public class CreateDiscountCommandHandler : IRequestHandler<CreateDiscountComman
|
|||
|
||||
case DiscountType.Product:
|
||||
var productDis = ProductDiscount.Create(request.Code, request.DiscountPercent, request.DiscountAmount, request.HasCode,
|
||||
request.AmountType, request.Type, request.Count, request.StartDate, request.ExpireDate, request.PriceFloor,
|
||||
request.AmountType, request.Type, request.Count, request.IsImmortal, request.StartDate, request.ExpireDate, request.PriceFloor,
|
||||
request.HasPriceFloor, request.PriceCeiling, request.HasPriceCeiling, request.IsInfinity, request.UseCount,
|
||||
request.IsForInvitation, request.IsSpecialOffer,request.ProductId);
|
||||
_repositoryWrapper.SetRepository<ProductDiscount>().Add(productDis);
|
||||
break;
|
||||
default:
|
||||
var def = Discount.Create(request.Code, request.DiscountPercent, request.DiscountAmount, request.HasCode,
|
||||
request.AmountType, request.Type, request.Count, request.StartDate, request.ExpireDate, request.PriceFloor,
|
||||
request.AmountType, request.Type, request.Count, request.IsImmortal, request.StartDate, request.ExpireDate, request.PriceFloor,
|
||||
request.HasPriceFloor, request.PriceCeiling, request.HasPriceCeiling, request.IsInfinity, request.UseCount,
|
||||
request.IsForInvitation,request.IsSpecialOffer);
|
||||
_repositoryWrapper.SetRepository<Discount>().Add(def);
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace NetinaShop.Repository.Handlers.Discounts;
|
||||
|
||||
public class CreateSaleCooperationDiscountHandler : IRequestHandler<CreateSaleCooperationDiscount,string>
|
||||
{
|
||||
private readonly UserManager<ApplicationUser> _userManager;
|
||||
private readonly IRepositoryWrapper _repositoryWrapper;
|
||||
private readonly ICurrentUserService _currentUserService;
|
||||
|
||||
public CreateSaleCooperationDiscountHandler(UserManager<ApplicationUser> userManager,IRepositoryWrapper repositoryWrapper,ICurrentUserService currentUserService)
|
||||
{
|
||||
_userManager = userManager;
|
||||
_repositoryWrapper = repositoryWrapper;
|
||||
_currentUserService = currentUserService;
|
||||
}
|
||||
public async Task<string> Handle(CreateSaleCooperationDiscount request, CancellationToken cancellationToken)
|
||||
{
|
||||
var userId = request.CorporateUserId;
|
||||
if (userId == default)
|
||||
{
|
||||
if (_currentUserService.UserId == null)
|
||||
throw new AppException("User id is null");
|
||||
if (!Guid.TryParse(_currentUserService.UserId, out userId))
|
||||
throw new AppException("User id is wrong");
|
||||
}
|
||||
var user = await _userManager.FindByIdAsync(request.CorporateUserId.ToString());
|
||||
if (user == null)
|
||||
throw new AppException("User not found", ApiResultStatusCode.NotFound);
|
||||
|
||||
var foundedDiscount = await _repositoryWrapper.SetRepository<Discount>()
|
||||
.TableNoTracking
|
||||
.FirstOrDefaultAsync(d => d.IsForSaleCooperation && d.CorporateUserId == userId, cancellationToken);
|
||||
if (foundedDiscount == null)
|
||||
{
|
||||
var code = StringExtensions.GetId();
|
||||
foundedDiscount = Discount.Create(code, 10, 0, true,
|
||||
DiscountAmountType.Percent, DiscountType.All, 0, true, DateTime.Today, DateTime.Today.AddYears(10), 0,
|
||||
false, 0, false, true, 0, false, false);
|
||||
foundedDiscount.SetCorporate(userId);
|
||||
|
||||
_repositoryWrapper.SetRepository<Discount>().Add(foundedDiscount);
|
||||
await _repositoryWrapper.SaveChangesAsync(cancellationToken);
|
||||
return foundedDiscount.Code;
|
||||
|
||||
}
|
||||
else
|
||||
return foundedDiscount.Code;
|
||||
}
|
||||
}
|
|
@ -18,7 +18,7 @@ public class UpdateDiscountCommandHandler : IRequestHandler<UpdateDiscountComman
|
|||
var ent = await _repositoryWrapper.SetRepository<Discount>().TableNoTracking.FirstOrDefaultAsync(d=>d.Id==request.Id,cancellationToken);
|
||||
if (ent == null)
|
||||
throw new AppException("Discount not found", ApiResultStatusCode.NotFound);
|
||||
var newEnt = Discount.Create(request.Code, request.DiscountPercent, request.DiscountAmount, request.HasCode, request.AmountType, request.Type, request.Count, request.StartDate, request.ExpireDate, request.PriceFloor, request.HasPriceFloor, request.PriceCeiling, request.HasPriceCeiling, request.IsInfinity, request.UseCount, request.IsForInvitation, request.IsSpecialOffer);
|
||||
var newEnt = Discount.Create(request.Code, request.DiscountPercent, request.DiscountAmount, request.HasCode, request.AmountType, request.Type, request.Count,request.IsImmortal, request.StartDate, request.ExpireDate, request.PriceFloor, request.HasPriceFloor, request.PriceCeiling, request.HasPriceCeiling, request.IsInfinity, request.UseCount, request.IsForInvitation, request.IsSpecialOffer);
|
||||
newEnt.Id = ent.Id;
|
||||
newEnt.CreatedAt = ent.CreatedAt;
|
||||
newEnt.CreatedBy = ent.CreatedBy;
|
||||
|
@ -30,7 +30,7 @@ public class UpdateDiscountCommandHandler : IRequestHandler<UpdateDiscountComman
|
|||
throw new AppException("Discount not found", ApiResultStatusCode.NotFound);
|
||||
|
||||
var catDis = CategoryDiscount.Create(request.Code, request.DiscountPercent, request.DiscountAmount, request.HasCode,
|
||||
request.AmountType, request.Type, request.Count, request.StartDate, request.ExpireDate, request.PriceFloor,
|
||||
request.AmountType, request.Type, request.Count, request.IsImmortal, request.StartDate, request.ExpireDate, request.PriceFloor,
|
||||
request.HasPriceFloor, request.PriceCeiling, request.HasPriceCeiling, request.IsInfinity, request.UseCount,
|
||||
request.IsForInvitation,request.IsSpecialOffer, request.CategoryId);
|
||||
catDis.Id = catEnt.Id;
|
||||
|
@ -45,7 +45,7 @@ public class UpdateDiscountCommandHandler : IRequestHandler<UpdateDiscountComman
|
|||
throw new AppException("Discount not found", ApiResultStatusCode.NotFound);
|
||||
|
||||
var productDis = ProductDiscount.Create(request.Code, request.DiscountPercent, request.DiscountAmount, request.HasCode,
|
||||
request.AmountType, request.Type, request.Count, request.StartDate, request.ExpireDate, request.PriceFloor,
|
||||
request.AmountType, request.Type, request.Count, request.IsImmortal, request.StartDate, request.ExpireDate, request.PriceFloor,
|
||||
request.HasPriceFloor, request.PriceCeiling, request.HasPriceCeiling, request.IsInfinity, request.UseCount,
|
||||
request.IsForInvitation, request.IsSpecialOffer, request.ProductId);
|
||||
productDis.Id = productEnt.Id;
|
||||
|
|
1749
NetinaShop.Repository/Migrations/20240224163606_EditDiscountAddCorporate.Designer.cs
generated
100644
1749
NetinaShop.Repository/Migrations/20240224163606_EditDiscountAddCorporate.Designer.cs
generated
100644
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,82 @@
|
|||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace NetinaShop.Repository.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class EditDiscountAddCorporate : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<Guid>(
|
||||
name: "CorporateUserId",
|
||||
schema: "public",
|
||||
table: "Discounts",
|
||||
type: "uuid",
|
||||
nullable: true);
|
||||
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "Immortal",
|
||||
schema: "public",
|
||||
table: "Discounts",
|
||||
type: "boolean",
|
||||
nullable: false,
|
||||
defaultValue: false);
|
||||
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "IsForSaleCooperation",
|
||||
schema: "public",
|
||||
table: "Discounts",
|
||||
type: "boolean",
|
||||
nullable: false,
|
||||
defaultValue: false);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Discounts_CorporateUserId",
|
||||
schema: "public",
|
||||
table: "Discounts",
|
||||
column: "CorporateUserId");
|
||||
|
||||
migrationBuilder.AddForeignKey(
|
||||
name: "FK_Discounts_Users_CorporateUserId",
|
||||
schema: "public",
|
||||
table: "Discounts",
|
||||
column: "CorporateUserId",
|
||||
principalSchema: "public",
|
||||
principalTable: "Users",
|
||||
principalColumn: "Id");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropForeignKey(
|
||||
name: "FK_Discounts_Users_CorporateUserId",
|
||||
schema: "public",
|
||||
table: "Discounts");
|
||||
|
||||
migrationBuilder.DropIndex(
|
||||
name: "IX_Discounts_CorporateUserId",
|
||||
schema: "public",
|
||||
table: "Discounts");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "CorporateUserId",
|
||||
schema: "public",
|
||||
table: "Discounts");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "Immortal",
|
||||
schema: "public",
|
||||
table: "Discounts");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "IsForSaleCooperation",
|
||||
schema: "public",
|
||||
table: "Discounts");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -360,6 +360,9 @@ namespace NetinaShop.Repository.Migrations
|
|||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<Guid?>("CorporateUserId")
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.Property<int>("Count")
|
||||
.HasColumnType("integer");
|
||||
|
||||
|
@ -392,9 +395,15 @@ namespace NetinaShop.Repository.Migrations
|
|||
b.Property<bool>("HasPriceFloor")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("Immortal")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("IsForInvitation")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("IsForSaleCooperation")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<bool>("IsInfinity")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
|
@ -433,6 +442,8 @@ namespace NetinaShop.Repository.Migrations
|
|||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("CorporateUserId");
|
||||
|
||||
b.ToTable("Discounts", "public");
|
||||
|
||||
b.HasDiscriminator<string>("Discriminator").HasValue("Discount");
|
||||
|
@ -1461,6 +1472,15 @@ namespace NetinaShop.Repository.Migrations
|
|||
b.Navigation("Category");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NetinaShop.Domain.Entities.Discounts.Discount", b =>
|
||||
{
|
||||
b.HasOne("NetinaShop.Domain.Entities.Users.ApplicationUser", "CorporateUser")
|
||||
.WithMany()
|
||||
.HasForeignKey("CorporateUserId");
|
||||
|
||||
b.Navigation("CorporateUser");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("NetinaShop.Domain.Entities.Orders.Order", b =>
|
||||
{
|
||||
b.HasOne("NetinaShop.Domain.Entities.Discounts.Discount", null)
|
||||
|
|
Loading…
Reference in New Issue