public void Execute(IJobExecutionContext context) { IAccountRetList AccountList = null; IPreferencesRet PreferencesRet = null; IItemInventoryRetList itemInventoryRetList = null; int maxRecords = 0; try { //** 1. To Get TDS Data Using Entity Frame Work. //TDSService _tdsService = new TDSService(); TDSItemInventoryList = GetMetrialData(); //** 2. If TDS data is grater than zero. than need to creat QBD session. if (TDSItemInventoryList != null && TDSItemInventoryList.Any()) { qbRequestItemSet = new QBRequestItemSet(); qbRequestItemSet.QBRequestItemList = new List <QBRequestItem>(); var bSessionResult = CreateQBsession(); if (bSessionResult) { //** 3. Using the QBD session to get AccountInfo. AccountList = GetQBAccountDetails(); if (AccountList != null && AccountList.Count > 0) { qbRequestItemSet.AccountList = AccountList; //** 4. Using the QBD session to get GetPreferences. PreferencesRet = GetQBPreferencesDetails(); if (PreferencesRet != null) { qbRequestItemSet.PreferencesRet = PreferencesRet; } //** 5. Using the QBD session to get qbd invertory item list. itemInventoryRetList = GetItemInventoryRetList(maxRecords); if (itemInventoryRetList != null && itemInventoryRetList.Count > 0) { //Parallel.ForEach(itemInventoryRetList,item=>) for (int i = 0; i < itemInventoryRetList.Count; i++) { var reqdata = itemInventoryRetList.GetAt(i); if (TDSItemInventoryList.Where(x => x.TRC_CODE.Trim() == reqdata.FullName.GetValue()).SingleOrDefault() != null) { var reqitem = TDSItemInventoryList.Where(x => x.TRC_CODE.Trim() == reqdata.FullName.GetValue()).SingleOrDefault(); //var reqitem=itemInventoryRetList.GetAt(i); double hh = reqdata.QuantityOnHand.GetValue(); if (reqitem.Quantity != reqdata.QuantityOnHand.GetValue()) { QBRequestItem requestItem = new QBRequestItem(); requestItem.Action = QBAction.Modify; reqdata.QuantityOnHand.SetValue(Convert.ToDouble(reqitem.Quantity)); requestItem.ItemInventoryRet = reqdata; qbRequestItemSet.QBRequestItemList.Add(requestItem); } } else { } } //** 4. To compare TDS and QBD item list using TRC_CODE code to asume as Name/Number in QBD item inventory list. //** 5. If TRC_CODE is not match in QBD. than need to add to QBD as a new inventory item. //** 6. If TRC_CODE is match in QBD. than need to ajust the quantity in QBD. //** 7. final status need to send to client using email. } else { //** 5. If TRC_CODE is not match in QBD. than need to add to QBD as a new inventory item. } } } } else { //ServiceLog.log.Fatal("TDS Data is empty " + DateTime.Now.ToLongDateString()); } //ServiceLog.GetUserInfo(); //Email("Execution Execution"); } catch (Exception ex) { // ServiceLog.Email(ex.ToString()); } finally { _QBSession.CloseQBConnection(sessionManager); } }
public QBResponceList InventoryadjustmentBulkOperation(QBSessionManager sessionManager, QBRequestItemSet qBRequestItemSet) { QBResponceList qbResponceData = null; QBSession QBMgr = null; QBResponceItem _qbResponceItem = null; QBMgr = new QBSession(); if (sessionManager == null) { QBMgr.CreateQBSession(out sessionManager); } if (sessionManager != null && qBRequestItemSet != null && qBRequestItemSet.QBRequestItemList != null && qBRequestItemSet.QBRequestItemList.Count > 0) { //Parallel.ForEach(qBRequestItemSet.QBRequestItemList, item => Process(item)); foreach (var data in qBRequestItemSet.QBRequestItemList) { if (data != null) { if (data.Action == QBAction.Modify) { //Update quntity. var responceItem = Inventoryadjustment(sessionManager, qBRequestItemSet.AccountList, qBRequestItemSet.PreferencesRet, data.ItemInventoryRet); } else { //Add Item CreatInventoryItem(sessionManager, qBRequestItemSet.AccountList, qBRequestItemSet.PreferencesRet, data.ItemInventoryRet); } } } } return(qbResponceData); }