refractor getprice methods

This commit is contained in:
Adam 2024-03-28 20:49:47 +01:00
parent 5d4abbc220
commit a5266f3d79
2 changed files with 11 additions and 54 deletions

View File

@ -48,51 +48,7 @@ namespace TIAMWebApp.Server.Controllers
_adminDal = adminDal;
}
public double GetTransferPrice(Guid productId, Guid fromTransferDestinationId, Guid toTranferDestinationId, in byte seatNumber)
{
throw new NotImplementedException();
}
public double GetTransferPrice(Guid productId, TransferDestination fromTransferDestination, TransferDestination toTransferDestination, in byte seatNumber)
{
var product = _adminDal.GetProductById(productId);
if (product == null) return -1;
return GetTransferPrice(product, fromTransferDestination, toTransferDestination, in seatNumber);
}
public double GetTransferPrice(Product product, TransferDestination fromTransferDestination, TransferDestination toTransferDestination, in byte seatNumber)
{
var baseDestination = product.Profile.AddressId == fromTransferDestination.AddressId ? toTransferDestination : fromTransferDestination;
var transferDestinationToProduct = _adminDal.GetTransferDestinationToProduct(product.Id, baseDestination.Id);
var tranferDestinationPrice = transferDestinationToProduct ?? baseDestination as ITransfeDestinationPrices;
var price = GetSeatNumberPrice(in tranferDestinationPrice, seatNumber);
//TODO: ExtraPrice - J.
return price;
}
public double GetSeatNumberPrice(in ITransfeDestinationPrices transfeDestinationPrices, in byte seatNumber)
=> GetSeatNumberPrice(transfeDestinationPrices.Price, transfeDestinationPrices.Price2, transfeDestinationPrices.Price3, seatNumber);
public double GetSeatNumberPrice(in double price, in double? price2, in double? price3, in byte seatNumber)
{
return seatNumber switch
{
>= (byte)SeatNumberPriceType.Price3SeatNum => price3 ?? price //TODO: price * seatnum percent - J.
,
>= (byte)SeatNumberPriceType.Price2SeatNum => price2 ?? price //TODO: price * seatnum percent - J.
,
_ => price
};
}
//public double GetExtraPrice(bool? extraPriceType){}
[AllowAnonymous]
[HttpGet]

View File

@ -13,12 +13,11 @@ namespace TIAMWebApp.Server.Services
public TransferBackendService(IConfiguration configuration, AdminDal adminDal)
{
_configuration = configuration;
_adminDal = adminDal;
}
public double GetTransferPrice(Guid productId, Guid fromTransferDestinationId, Guid toTranferDestinationId)
public double GetTransferPrice(Guid productId, Guid fromTransferDestinationId, Guid toTranferDestinationId, in byte seatNumber)
{
throw new NotImplementedException();
}
@ -52,13 +51,15 @@ namespace TIAMWebApp.Server.Services
public double GetSeatNumberPrice(in double price, in double? price2, in double? price3, in byte seatNumber)
{
if (seatNumber >= (byte)SeatNumberPriceType.Price3SeatNum)
return price3 ?? price; //TODO: *seatnum percent - J.
if (seatNumber >= (byte)SeatNumberPriceType.Price2SeatNum)
return price2 ?? price; //TODO: *seatnum percent - J.
return price;
return seatNumber switch
{
>= (byte)SeatNumberPriceType.Price3SeatNum => price3 ?? price //TODO: price * seatnum percent - J.
,
>= (byte)SeatNumberPriceType.Price2SeatNum => price2 ?? price //TODO: price * seatnum percent - J.
,
_ => price
};
}
}
}