public static void SubmitAdjustmentVoucher(string itemNo, DateTime dateIssued, int qty, string reason, int issueEmpNo) { AdjustmentVoucher aV; AdjustmentVoucherDetail aVD; LussisEntities context = new LussisEntities(); using (var txn = new TransactionScope()) { // Create AdjustmentVoucher aV = new AdjustmentVoucher(); aV.DateIssued = dateIssued; aV.IssueEmpNo = issueEmpNo; aV.Status = "Pending"; context.AdjustmentVouchers.Add(aV); context.SaveChanges(); // Create AdjustmentVoucherDetails aVD = new AdjustmentVoucherDetail(); aVD.AvNo = aV.AvNo; aVD.ItemNo = itemNo; aVD.Qty = qty; aVD.Reason = reason; context.AdjustmentVoucherDetails.Add(aVD); context.SaveChanges(); txn.Complete(); } // Send Email var supplier1Code = context.StationeryCatalogues.Where(x => x.ItemNo.Equals(itemNo)).FirstOrDefault().Supplier1; var unitPrice = context.SupplyTenders.Where(x => x.ItemNo.Equals(itemNo) && x.SupplierCode.Equals(supplier1Code)).FirstOrDefault().UnitPrice; var price = qty * unitPrice; Employee recipient; if (price >= 250) { recipient = context.StoreAssignments.Where(x => x.Role.Equals("Manager")).FirstOrDefault().Employee; } else { recipient = context.StoreAssignments.Where(x => x.Role.Equals("Supervisor")).FirstOrDefault().Employee; } string recipientEmail = recipient.Email; string emailSubject = EmailTemplate.GenerateAdjustmentVoucherSubject(); string emailContent = EmailTemplate.GenerateAdjustmentVoucherEmail(recipient.EmpName, aV.AvNo); EmailBackend.sendEmailStep(recipientEmail, emailSubject, emailContent); }