public string UpdateInvoiceAndPayment(string invoiceNo, DateTime invoiceDate, DateTime date, List <InvoiceDetailViewModel> invoiceDetail, List <PaymentDetailViewModel> paymentDetail) { PaymentProvider payment = new PaymentProvider(ctx); InvoiceHeader invoice = ctx.InvoiceHeaders.SingleOrDefault(inv => inv.InvoiceNo == invoiceNo); invoice.Date = invoiceDate; string paymentNo = String.Empty; if (invoice != null) { ctx.InvoiceDetails.DeleteAllOnSubmit(invoice.InvoiceDetails.AsEnumerable()); foreach (var model in invoiceDetail) { InvoiceDetail d = new InvoiceDetail(); d.InvoiceID = invoice.ID; d.ItemID = model.ItemID; d.Quantity = model.Quantity; d.UnitPrice = model.UnitPrice; d.Discount = model.Discount; d.IsTaxable = model.IsTaxable; invoice.InvoiceDetails.Add(d); ctx.InvoiceDetails.InsertOnSubmit(d); } paymentNo = payment.Create(date, invoiceNo, paymentDetail); ctx.SubmitChanges(); } return(paymentNo); }