Untitled
unknown
plain_text
a year ago
3.1 kB
8
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...