Untitled
unknown
plain_text
2 years ago
3.1 kB
13
Indexable
public async Task AddProductAsync(int productId, int receiptId, int quantity)
{
Product prod = new();
try { var prod2 = await uow.ProductRepository.GetByIdAsync(productId);
prod = prod2;
var a = await uow.ReceiptRepository.GetByIdWithDetailsAsync(receiptId);
validateForProduct(prod);
validateForReceipt(a);
var filtered = a.ReceiptDetails?.FirstOrDefault(x => x.ProductId == productId);
if (filtered == null)
{
var customerDiscountValue = a.Customer.DiscountValue;
var newRDR = new ReceiptDetailModel()
{
ReceiptId = receiptId,
ProductId = productId,
DiscountUnitPrice = prod.Price * (100 - customerDiscountValue) / 100,
Quantity = quantity,
UnitPrice = prod.Price
};
await uow.ReceiptDetailRepository.AddAsync(mapper.Map<ReceiptDetail>(newRDR));
}
else
{
filtered.Quantity += quantity;
var newRDR = new ReceiptDetail()
{
ReceiptId = receiptId,
ProductId = productId,
Quantity = filtered.Quantity,
};
uow.ReceiptDetailRepository.Update(newRDR);
}
}
catch (NullReferenceException) {
var a = await uow.ReceiptRepository.GetByIdWithDetailsAsync(receiptId);
validateForProduct(prod);
validateForReceipt(a);
var filtered = a.ReceiptDetails?.FirstOrDefault(x => x.ProductId == productId);
if (filtered == null)
{
var customerDiscountValue = a.Customer.DiscountValue;
var newRDR = new ReceiptDetailModel()
{
ReceiptId = receiptId,
ProductId = productId,
DiscountUnitPrice = prod.Price * (100 - customerDiscountValue) / 100,
Quantity = quantity,
UnitPrice = prod.Price
};
await uow.ReceiptDetailRepository.AddAsync(mapper.Map<ReceiptDetail>(newRDR));
}
else
{
filtered.Quantity += quantity;
var newRDR = new ReceiptDetail()
{
ReceiptId = receiptId,
ProductId = productId,
Quantity = filtered.Quantity,
};
uow.ReceiptDetailRepository.Update(newRDR);
}
}
await uow.SaveAsync();
}Editor is loading...