private static void RemoveExistingDbReceipts(POSAIData.POSAIEntities db, SalesReceiptRet saleReceipt) { POSAIData.SalesReceipt xr = (POSAIData.SalesReceipt)(from er in db.SalesReceipts where er.SalesReceiptNumber == saleReceipt.SalesReceiptNumber select er).FirstOrDefault(); if (xr != null) { db.SalesReceipts.Remove(xr); // db.SaveChanges(); } }
private void SaveToDataBase(TrackableCollection <SalesReceiptRet> trackableCollection) { try { POSAIData.POSAIEntities db = new POSAIData.POSAIEntities(); foreach (SalesReceiptRet saleReceipt in trackableCollection) { POSAIData.SalesReceipt sr = new POSAIData.SalesReceipt(); RemoveExistingDbReceipts(db, saleReceipt); sr.SalesReceiptNumber = saleReceipt.SalesReceiptNumber; sr.TxnDate = saleReceipt.TxnDate; // do details foreach (POSAI_mvvm.QuickBooks.SalesReceiptRetSalesReceiptItemRet saleReceiptDetail in saleReceipt.SalesReceiptItems) { POSAIData.SalesReceiptDetails itm = new POSAIData.SalesReceiptDetails(); itm.ItemListID = saleReceiptDetail.ListID; itm.Tax = saleReceiptDetail.TaxAmount; itm.QtySold = System.Convert.ToDecimal(saleReceiptDetail.Qty); itm.ItemKey = saleReceiptDetail.Desc1 + "|" + saleReceiptDetail.Desc2 + "|" + saleReceiptDetail.Attribute + "|" + saleReceiptDetail.Size; itm.ItemALU = saleReceiptDetail.ALU; itm.ItemDesc1 = saleReceiptDetail.Desc1; itm.ItemDesc2 = saleReceiptDetail.Desc2; sr.SalesReceiptDetails.Add(itm); } db.SalesReceipts.Add(sr); } db.SaveChanges(); MessageBox.Show("Sale Receipt Import Complete"); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } catch (Exception e) { throw e; } }