private static void GetClientCreditNotes(LOG_CHANGES changeset) { var note = WebApiClient.GetSaleCreditNote(changeset.ListVal).Result; var db = ContextFactory.GetDBContext(); var id = Convert.ToInt32(changeset.ListVal); var localId = db.ORIN_ClientCreditNotes.Include(c => c.RIN1_ClientCreditNoteDetail) .FirstOrDefault(c => c.IdClientCreditNoteL == changeset.IdL.Value); var localDE = db.ORIN_ClientCreditNotes.Include(c => c.RIN1_ClientCreditNoteDetail) .FirstOrDefault(c => c.DocEntry == id); if (changeset.IdL.HasValue) // C1 { if (localId == null) // C3 { db.ORIN_ClientCreditNotes.Add(note); ContextFactory.SaveChanges(); ClientCreditNoteHelper.SaveTransaction(note); } else { if (localId.StateL == LocalStatus.Procesado) // C4 { if (localDE == null || localDE.DocEntry != localId.DocEntry) // C5 { db.ORIN_ClientCreditNotes.Add(note); ClientCreditNoteHelper.SaveTransaction(note); } else { localId.UpdateModelPropertiesFrom(note); } } else { localId.UpdateModelPropertiesFrom(note); ClientCreditNoteHelper.SaveTransaction(note); } } } else // C2 -- El Idl no contenia un valor { if (localDE == null) { db.ORIN_ClientCreditNotes.Add(note); ClientCreditNoteHelper.SaveTransaction(note); } } //db.LOG_CHANGES.Add(changeset); changeset.AddChangeset(); }
private static void GetPurchaseFromServer(LOG_CHANGES changeset) { var purchase = WebApiClient.GetPurchase(changeset.ListVal).Result; var db = ContextFactory.GetDBContext(); var id = Convert.ToInt32(changeset.ListVal); var localId = db.OPCH_Purchase.Include(c => c.PCH1_PurchaseDetail) .FirstOrDefault(c => c.IdPurchase == changeset.IdL.Value); var localDE = db.OPCH_Purchase.Include(c => c.PCH1_PurchaseDetail) .FirstOrDefault(c => c.DocEntry == id); if (changeset.IdL.HasValue) // C1 { if (localId == null) // C3 { db.OPCH_Purchase.Add(purchase); PurchaseHelper.SaveTransaction(purchase); } else { if (localId.StateL == LocalStatus.Procesado) // C4 { if (localDE == null || localDE.DocEntry != localId.DocEntry) // C5 { db.OPCH_Purchase.Add(purchase); PurchaseHelper.SaveTransaction(purchase); } else { localId.UpdateModelPropertiesFrom(purchase); } } else { localId.UpdateModelPropertiesFrom(purchase); PurchaseHelper.SaveTransaction(purchase); } } } else // C2 -- El Idl no contenia un valor { if (localDE == null) { db.OPCH_Purchase.Add(purchase); PurchaseHelper.SaveTransaction(purchase); } } // db.LOG_CHANGES.Add(changeset); changeset.AddChangeset(); }
private static void GetTransfersfromServer(LOG_CHANGES changeset) { var transfer = WebApiClient.GetTransfer(changeset.ListVal).Result; if (transfer == null) { return; } transfer.StateL = LocalStatus.Procesado; var db = ContextFactory.GetDBContext(); var id = Convert.ToInt32(changeset.ListVal); var localId = db.OWTR_Transfers.Include(c => c.WTR1_TransferDetails) .FirstOrDefault(c => c.IdTransferL == changeset.IdL.Value); var localDE = db.OWTR_Transfers.Include(c => c.WTR1_TransferDetails) .FirstOrDefault(c => c.DocEntry == id); if (changeset.IdL.HasValue) // C1 { if (localId == null) // C3 { db.OWTR_Transfers.Add(transfer); TransferHelper.SaveTransaction(transfer); } else { if (localId.StateL == LocalStatus.Procesado) // C4 { if (localDE == null || localDE.DocEntry != localId.DocEntry) // C5 { db.OWTR_Transfers.Add(transfer); TransferHelper.SaveTransaction(transfer); } else { localId.UpdateModelPropertiesFrom(transfer); } } else { localId.UpdateModelPropertiesFrom(transfer); TransferHelper.SaveTransaction(transfer); } } } else // C2 -- El Idl no contenia un valor { if (localDE == null) { db.OWTR_Transfers.Add(transfer); TransferHelper.SaveTransaction(transfer); } } //db.LOG_CHANGES.Add(changeset); changeset.AddChangeset(); }
private static void GetTransferTransferRequestFromServer(LOG_CHANGES changeset) { var transfer = WebApiClient.GetTransferRequest(changeset.ListVal).Result; if (transfer == null) { return; } transfer.StateL = LocalStatus.Procesado; var db = ContextFactory.GetDBContext(); var id = Convert.ToInt32(changeset.ListVal); var localId = db.OWTQ_TransferRequest.Include(c => c.WTQ1_TransferRequestDetails) .FirstOrDefault(c => c.IdTransferRequestL == changeset.IdL.Value); var localDE = db.OWTQ_TransferRequest.Include(c => c.WTQ1_TransferRequestDetails) .FirstOrDefault(c => c.DocEntry == id); if (changeset.IdL.HasValue) // C1 { if (localId == null) // C3 { db.OWTQ_TransferRequest.Add(transfer); } else { if (localId.StateL == LocalStatus.Procesado) // C4 { if (localDE == null || localDE.DocEntry != localId.DocEntry) // C5 { db.OWTQ_TransferRequest.Add(transfer); } else { localId.UpdateModelPropertiesFrom(transfer); } } else { localId.UpdateModelPropertiesFrom(transfer); } } } else // C2 -- El Idl no contenia un valor { if (localDE == null) { db.OWTQ_TransferRequest.Add(transfer); } } //db.LOG_CHANGES.Add(changeset); changeset.AddChangeset(); //if (changeset.SyncType == SyncType.Add) //{ // // Actualizar si Changeset Tiene Idl y no esta procesado localmente // if (changeset.IdL.HasValue) // { // var local = // db.OWTQ_TransferRequest.Include("WTQ1_TransferRequestDetails") // .FirstOrDefault(t => t.IdTransferRequestL == changeset.IdL.Value); // if (local == null) // { // NotifyException(transfer); // db.LOG_CHANGES.Add(changeset); // db.SaveChanges(); // return; // } // // Verificar si no esta procesado // if (local.StateL != LocalStatus.Procesado) // { // local.UpdateModelPropertiesFrom(transfer); // } // } // Si el objeto no tiene ID Local // else db.OWTQ_TransferRequest.Add(transfer); //} //if (changeset.SyncType == SyncType.Update) //{ // var local = // db.OWTQ_TransferRequest.Include("WTQ1_TransferRequestDetails") // .FirstOrDefault(t => t.DocEntry == transfer.DocEntry); // if (local == null) // { // NotifyException(transfer); // db.LOG_CHANGES.Add(changeset); // db.SaveChanges(); // return; // } // if (local.WTQ1_TransferRequestDetails.Count != transfer.WTQ1_TransferRequestDetails.Count) // { // // Remove All Local Details. // local.WTQ1_TransferRequestDetails.ForEach(d=> d.RemoveAndSave()); // local.WTQ1_TransferRequestDetails.AddRange(transfer.WTQ1_TransferRequestDetails); // local.UpdateModelPropertiesFrom(transfer,excludeComplexTypes:true); // } // else local.UpdateModelPropertiesFrom(transfer); //} //db.LOG_CHANGES.Add(changeset); //db.SaveChanges(); }
public static void GetSpecialOrdersFromServer(LOG_CHANGES changeset) { var order = WebApiClient.GetSpecialOrder(changeset.ListVal).Result; if (order == null) { return; } order.StateL = LocalStatus.Procesado; var db = ContextFactory.GetDBContext(); if (changeset.SyncType == SyncType.Add) { if (changeset.IdL.HasValue) { // Get Local if Local == null NotifyException () var local = db.ORDR_SpecialOrder.Include("RDR1_SpecialOrderDetail").Include("ATC1_Attachments") .FirstOrDefault(o => o.IdSpecialOrder == changeset.IdL.Value); if (local == null) { NotifyException(order); //db.LOG_CHANGES.Add(changeset); changeset.AddChangeset(); return; } // Verfiy != Procesado. if (local.StateL != LocalStatus.Procesado) { local.UpdateModelPropertiesFrom(order); } } else { db.ORDR_SpecialOrder.Add(order); } } if (changeset.SyncType == SyncType.Update) { var local = db.ORDR_SpecialOrder.Include("RDR1_SpecialOrderDetail").Include("ATC1_Attachments") .FirstOrDefault(o => o.DocEntry == order.DocEntry); if (local == null) { NotifyException(order); //db.LOG_CHANGES.Add(changeset); changeset.AddChangeset(); return; } if (local.RDR1_SpecialOrderDetail.Count == order.RDR1_SpecialOrderDetail.Count && local.ATC1_Attachments.Count == order.ATC1_Attachments.Count) { local.UpdateModelPropertiesFrom(order); } if (local.RDR1_SpecialOrderDetail.Count != order.RDR1_SpecialOrderDetail.Count) { local.RDR1_SpecialOrderDetail.ForEach(d => d.RemoveAndSave()); local.RDR1_SpecialOrderDetail.AddRange(order.RDR1_SpecialOrderDetail); local.UpdateModelPropertiesFrom(order, excludeComplexTypes: true); db.SaveChanges(); } if (local.ATC1_Attachments.Count != order.ATC1_Attachments.Count) { local.ATC1_Attachments.ForEach(d => d.RemoveAndSave()); local.ATC1_Attachments.AddRange(order.ATC1_Attachments); local.UpdateModelPropertiesFrom(order, excludeComplexTypes: true); db.SaveChanges(); } } //db.LOG_CHANGES.Add(changeset); changeset.AddChangeset(); }