public void OnStartProcess(manifestRequest req, Request reqInfo, ProcessMsgDelegateRXRaw cbsend = null) { Init(); Guid g = NewGuid(); if (req.requestId != null) { g = new Guid(req.requestId); } else { req.requestId = g.ToByteArray(); } Logger.Info($"OnStartProcess Starting the background process Request: {req.ToString()}"); object[] paramArgs = new object[] { req, reqInfo, cbsend }; int to = 0; if (!dDoneEvent.ContainsKey(g)) { string name = Enum.GetName(typeof(eCommand), req.command); if (name.CompareTo("OrdersLoad") == 0) { to = 60000; } dDoneEvent.Add(g, new evData() { evnt = new ManualResetEvent(false), secReset = to, name = name }); } bgWorker.RunWorkerAsync(paramArgs); }
private void OnSavePOD(object obj) { manifestRequest mreq = new manifestRequest(); mreq.command = eCommand.CompleteStop; // Stream bitmap = Signature.GetImageStreamAsync(SignatureImageFormat.Png); foreach (var StopOrder in ShippedOrderCollection) { // mreq.bData = Signature; if (mreq.valist == null) { mreq.valist = new List <long>(); } mreq.valist.Add(StopOrder.ORD_NO); mreq.id = StopOrder.ManifestId; //We need the DSP_SEQ from the scnfle ORD_NO List // mreq.DATA = StopOrder.DSP_SEQ; // StopOrder.Status; } mreq.bData = Signature; Request reqInfo = new Request() { reqGuid = NewGuid(), LIds = new Dictionary <long, status>(), LinkMid = new Dictionary <long, List <long> >() }; stopThread.OnStartProcess(mreq, reqInfo); }
public bool SendMsgUMDAPI(manifestRequest req) { if (IsConnectedAPI == ConnectState.Connected) { return(umdSrv.SendMessage(req)); } else { return(false); } }
public bool SendMsgWinsys(manifestRequest req) { if (IsConnectedWinSys == ConnectState.Connected) { return(winSys.SendMessage(req)); } else { return(winSys.Connect()); } }
public void GetOrderMasterData(ManifestMasterData mmd) { var req = new manifestRequest() { command = eCommand.OrdersLoad, requestId = mmd.RequestId.ToByteArray(), id = mmd.ManifestId, date = mmd.SHIP_DTE.ToString("yyyy-MM-dd") }; sm(req); }
public void GetOrderOptionsData(OrderDetailsData ood) { var req = new manifestRequest() { command = eCommand.OrderOptions, requestId = ood.RequestId.ToByteArray(), valist = new List <long>() { ood.ORD_NO } }; sm(req); }
public void GetTruckData(ManifestDetailsData mdd) { var req = new manifestRequest() { command = eCommand.Trucks, requestId = mdd.RequestId.ToByteArray(), valist = new List <long>() { mdd.DLR_NO } }; sm(req); }
public void GetManifestDetails(ManifestMasterData manMaster, Func <byte[], Task> cbsend) { dt = manMaster.SHIP_DTE; var req = new manifestRequest() { command = eCommand.ManifestDetails, requestId = manMaster.RequestId.ToByteArray(), id = manMaster.ManifestId, valist = new List <long>() { manMaster.LINK } }; Logger.Info($"Upload Manifest - GetManifestDetails DrillDown/n sending manifestRequest/n/t{req.command.ToString()}" + $"/n/tmanId:{req.id} reqId: {req.requestId}"); sm(req); }
static Dictionary <short, Dictionary <byte, List <long> > > dTruckCodeToDealerNumbers = new Dictionary <short, Dictionary <byte, List <long> > >(); //TruckCode -> <Seq, List<Orders>> public static isaCommand CommandFactory(byte[] cmdBytes) { isaCommand cmd = new Command().FromArray(cmdBytes); switch (cmd.command) { case eCommand.Broadcast: //Broadcast cmdType = Broadcast.FromArray(cmdBytes); break; case eCommand.DeliveryComplete: //Broadcast cmdType = Broadcast.FromArray(cmdBytes); break; case eCommand.CheckManifest: case eCommand.CheckManifestComplete: manifestMaster mamr = new manifestMaster(); cmd = mamr.FromArray(cmdBytes); break; case eCommand.GenerateManifest: manifestRequest mr = new manifestRequest(); cmd = mr.FromArray(cmdBytes); if (cmd == null) { manifestMaster mmr = new manifestMaster(); cmd = mmr.FromArray(cmdBytes); } //Call ApplicationServer to return the data requested. //UMDManifest. break; case eCommand.OrdersLoad: //orders ords = new orders(); //cmd = ords.FromArray(cmdBytes); orderMaster orm = new orderMaster(); cmd = orm.FromArray(cmdBytes); break; case eCommand.Trucks: trucks trks = new trucks(); cmd = trks.FromArray(cmdBytes); break; case eCommand.Stops: stops stps = new stops(); cmd = stps.FromArray(cmdBytes); break; case eCommand.OrderDetails: orderDetails cmdType = new orderDetails(); cmd = cmdType.FromArray(cmdBytes); break; case eCommand.Manifest: manifestMaster mm = new manifestMaster(); cmd = mm.FromArray(cmdBytes); break; case eCommand.ManifestDetails: manifestDetails md = new manifestDetails(); cmd = md.FromArray(cmdBytes); break; case eCommand.OrdersUpload: orderMaster om = new orderMaster(); cmd = om.FromArray(cmdBytes); OrderMasterData omd = new OrderMasterData(om); if (!dStopOrders.ContainsKey(omd.DLR_NO)) { dStopOrders.Add(omd.DLR_NO, new List <long>() { omd.ORD_NO }); } break; case eCommand.ScanFile: scanFile sc = new scanFile(); cmd = sc.FromArray(cmdBytes); ScanFileData scd = new ScanFileData(sc); break; case eCommand.OrderOptions: orderOptions oo = new orderOptions(); cmd = oo.FromArray(cmdBytes); //OrderOptionsData ood = new OrderOptionsData(oo); break; case eCommand.AccountReceivable: accountReceivable ar = new accountReceivable(); cmd = ar.FromArray(cmdBytes); // AccountsReceivableData acr = new AccountsReceivableData((accountReceivable)cmd); break; case eCommand.ManifestLoadComplete: case eCommand.TrucksLoadComplete: case eCommand.StopsLoadComplete: case eCommand.OrdersLoadComplete: case eCommand.OrderUpdatesComplete: case eCommand.OrderDetailsComplete: case eCommand.OrderOptionsComplete: case eCommand.ManifestDetailsComplete: case eCommand.UploadManifestComplete: case eCommand.LoadFilesComplete: Logger.Info($"CommandFactory: {Enum.GetName(typeof(eCommand), cmd.command) + Environment.NewLine}"); manifestRequest req = new manifestRequest(); Logger.Info($"CommandFactory: {req.ToString()}"); cmd = req.FromArray(cmdBytes); break; case eCommand.Ping: //Broadcast cmdType = Broadcast.FromArray(cmdBytes); //cmd = SendPong(); break; case eCommand.Pong: //Broadcast cmdType = Broadcast.FromArray(cmdBytes); //Broadcast cmdType = Broadcast.FromArray(cmdBytes); break; case eCommand.RunQuery: //Broadcast cmdType = Broadcast.FromArray(cmdBytes); break; default: break; } return(cmd); }
public void LoadData(manifestRequest req) { Logger.Info($"ManifestVM::LoadData: {req.ToString()}"); winSys.SendMessage(req); }
public void HandleClientCmd(byte[] bytes_cmd, Func <byte[], Task> cbsend) { isaCommand cmd = new Command().FromArray(bytes_cmd); switch (cmd.command) { case eCommand.Ping: Logger.Debug("HandleClientCmd - Received Ping / Replying Pong.."); cbsend(new Command() { command = eCommand.Pong }.ToArray()); break; case eCommand.Pong: Logger.Debug("HandleClientCmd - Received Pong"); break; case eCommand.LoadFiles: Logger.Info("HandleClientCmd - Copy Files from Winsys Server Paths top App Server Paths:{cmd.ToString()}"); //CopyFilesToServer(DateTime.Today); Logger.Info("HandleClientCmd - Replying LoadFilesComplete..."); cbsend(new Command() { command = eCommand.LoadFilesComplete }.ToArray()); break; case eCommand.GenerateManifest: Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}"); manifestMaster mM = (manifestMaster) new manifestMaster().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd Generate Manifest from Winsys and SqlServer:{mM.ToString()}"); if (mM.LINK != 0) { ManifestMasterData mmd = (ManifestMasterData)UMDServer.QueryData(cbsend, mM); Logger.Info($"API Manager GenerateManifest. {mmd.ToString()}"); } else { WinSysSM.SendMessage(cmd); } break; case eCommand.CheckManifest: Logger.Info($"HandleClientCmd - CheckManifest:{cmd.ToString()}"); //ManifestMasterData mMstData = (ManifestMasterData)new ManifestMasterData(bytes_cmd); manifestMaster mMst = (manifestMaster) new manifestMaster().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd Compare Manifest from Winsys to SqlServer: {mMst.ToString()}"); ManifestMasterData mamd = (ManifestMasterData)UMDServer.QueryData(cbsend, mMst); Logger.Info($"API Manager GenerateManifest. {mamd.ToString()}"); break; case eCommand.RunQuery: Logger.Info($"HandleClientCmd - ManifestDetails: {cmd.ToString()}"); //DriverData dd = (DriverData)GetDrivers(cbsend); break; case eCommand.Manifest: Logger.Info($"HandleClientCmd - Manifest from Winsys and SqlServer:{cmd.ToString()}"); cbsend(cmd.ToArray()); break; case eCommand.Trucks: Logger.Info($"HandleClientCmd - Trucks: {cmd.ToString()}"); isaCommand req = new manifestRequest().FromArray(bytes_cmd); TruckData td = (TruckData)UMDServer.QueryData(cbsend, req); Logger.Info($"HandleClientCmd - Trucks. reqId:{req.ToString()}"); break; case eCommand.ManifestDetails: Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}"); isaCommand reqmd = new manifestRequest().FromArray(bytes_cmd); // ManifestDetailsData mdd = manifestDetails manDet = new manifestDetails(); ManifestDetailsData manDetData = (ManifestDetailsData)manDet.FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - ManifestDetails:{manDetData.ToString()}"); foreach (var mmd in UMDServer.Persist(SPCmds.INSERTMANIFESTDETAILS, manDetData)) { drillDown.GetOrderMasterData((ManifestDetailsData)mmd); mmd.Command = eCommand.ManifestDetails; mmd.RequestId = new Guid(manDet.requestId); Logger.Info($"HandleClientCmd - ManifestDetails. Sending GetOrderMasterData:{mmd.ToString()}"); cbsend(((manifestDetails)mmd).ToArray()); } break; case eCommand.Orders: Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}"); var om = (orderMaster) new orderMaster().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - Orders. reqId: {om.ToString()}"); foreach (var omd in UMDServer.Persist(SPCmds.INSERTORDER, new OrderMasterData(om))) { drillDown.GetOrderDetailsData((OrderMasterData)omd); } break; case eCommand.OrderOptions: Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}"); var oo = (orderOptions) new orderOptions().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - OrderOptions:{cmd.ToString()}"); foreach (var mmd in UMDServer.Persist(SPCmds.INSERTORDEROPTIONS, new OrderOptionsData(oo))) { var oopt = new orderOptions((OrderOptionsData)mmd); oopt.command = eCommand.OrderOptionsComplete; cbsend(oopt.ToArray()); } break; case eCommand.OrderDetails: Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}"); var odt = (orderDetails) new orderDetails().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - OrderDetails: {odt.ToString()}"); foreach (var mmd in UMDServer.Persist(SPCmds.INSERTORDERDETAILS, new OrderDetailsData(odt))) { orderDetails odd = new orderDetails((OrderDetailsData)mmd); odd.command = eCommand.OrderDetailsComplete; cbsend(odd.ToArray()); } break; case eCommand.Drivers: Logger.Info($"HandleClientCmd - ManifestDetails:{cmd.ToString()}"); req = new manifestRequest().FromArray(bytes_cmd); DriverData dd = (DriverData)UMDServer.QueryData(cbsend, req); //drivers drvs = new drivers(dd); //drvs.command = eCommand.DriversLoadComplete; //cbsend(drvs.ToArray()); //cbsend(new Command() { command = eCommand.DriversLoadComplete, value = dd.DriverId.ToString() }.ToArray()); break; case eCommand.UploadManifest: Logger.Info($"HandleClientCmd - UploadManifest:{cmd.ToString()}"); manifestRequest mreq = (manifestRequest) new manifestRequest().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - UploadManifest: {mreq.ToString()}"); //ManifestMasterData Mmd = (ManifestMasterData)cmd; manifestMaster mm = (manifestMaster) new manifestMaster().FromArray(mreq.bData); IEnumerable <IMDMMessage> mmdata = UMDServer.Persist(SPCmds.INSERTMANIFEST, new ManifestMasterData(mm, mm.id)); Logger.Info($"HandleClientCmd - UploadManifest Persisted:{mm.ToString()}"); try { ManifestMasterData mmd = null; foreach (var mmdIt in mmdata) { mmd = (ManifestMasterData)mmdIt; Logger.Info($"HandleClientCmd - UploadManifest - Get ManifestDetails sending ManMastData Trk:{mmd.ToString()}"); drillDown.GetManifestDetails(mmd, cbsend); } if (mmd != null) { manifestMaster mmRet = new manifestMaster(mmd); mmRet.command = eCommand.ManifestLoadComplete; Logger.Info($"HandleClientCmd - UploadManifest - Done (ManifestLoadComplete):{mreq.ToString()}"); cbsend(mmRet.ToArray()); } } catch (Exception e) { Logger.Debug("HandleClientCmd - Error exception = " + e.Message); } break; case eCommand.Stops: Logger.Info($"HandleClientCmd - Stops. reqId:{cmd.ToString()}"); req = new manifestRequest().FromArray(bytes_cmd); StopData sd = (StopData)UMDServer.QueryData(cbsend, req); stops stps = new stops(sd); stps.command = eCommand.StopsLoadComplete; cbsend(stps.ToArray()); break; case eCommand.OrdersLoad: req = new manifestRequest().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - OrdersLoad (Start QueryData): {req.ToString()}"); OrderData od = (OrderData)UMDServer.QueryData(cbsend, req); orders odrs = new orders(od); odrs.command = eCommand.OrdersLoadComplete; Logger.Info($"HandleClientCmd - OrdersLoad (OrdersLoadComplete): {odrs.ToString()}"); cbsend(odrs.ToArray()); break; default: Logger.Error("HandleClientCmd - ERROR Unknown command. Parse Error MDM-API"); break; } }
void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { object[] parameters = e.UserState as object[]; isaCommand cmd = (isaCommand )parameters[0]; Func <byte[], Task> cbsend = null; if (parameters.Length == 3) { cbsend = (Func <byte[], Task>)parameters[2]; } IMDMMessage mcmd = null; switch (cmd.command) { case eCommand.Manifest: mcmd = new ManifestMasterData((manifestMaster)cmd, ((manifestMaster)cmd).id); Sendback((O)mcmd, cbsend); break; case eCommand.ManifestLoadComplete: manifestRequest mreq = (manifestRequest)cmd; if (mreq.valist != null) { foreach (var it in mreq.valist) { mcmd = new ManifestMasterData() { RequestId = new Guid(cmd.requestId), LINK = it, SHIP_DTE = DateTime.Today, Command = eCommand.ManifestLoadComplete }; Sendback((O)mcmd, cbsend); } } else { mcmd = new ManifestMasterData() { RequestId = new Guid(cmd.requestId), LINK = -1, SHIP_DTE = DateTime.Today, Command = eCommand.ManifestLoadComplete }; Sendback((O)mcmd, cbsend); } break; case eCommand.CheckManifestComplete: mcmd = new ManifestMasterData((manifestMaster)cmd, ((manifestMaster)cmd).id, false); Sendback((O)mcmd, cbsend); break; case eCommand.CheckManifest: mcmd = new ManifestMasterData((manifestMaster)cmd, ((manifestMaster)cmd).id, false); Sendback((O)mcmd, cbsend); break; case eCommand.Drivers: mcmd = new DriverData() { Command = cmd.command }; Sendback((O)mcmd, cbsend); break; case eCommand.DriversLoadComplete: mcmd = (DriverData)cmd; Sendback((O)mcmd, cbsend); CompleteBackgroundWorker(new Guid(cmd.requestId)); break; case eCommand.ManifestDetails: mcmd = new ManifestDetailsData() { Command = cmd.command }; Sendback((O)mcmd, cbsend); break; case eCommand.AccountReceivable: mcmd = new AccountsReceivableData((accountReceivable)cmd); Sendback((O)mcmd, cbsend); break; case eCommand.ManifestDetailsComplete: mreq = (manifestRequest)cmd; if (mreq.valist != null) { foreach (var it in mreq.valist) { mcmd = new ManifestDetailsData() { RequestId = new Guid(cmd.requestId), DLR_NO = it, Command = eCommand.ManifestDetailsComplete }; Sendback((O)mcmd, cbsend); } } else { mcmd = new ManifestMasterData() { RequestId = new Guid(cmd.requestId), LINK = -1, SHIP_DTE = DateTime.Today, Command = eCommand.ManifestLoadComplete }; Sendback((O)mcmd, cbsend); } //mcmd = new ManifestDetailsData((manifestDetails)cmd); //Sendback((O)mcmd, cbsend); //CompleteBackgroundWorker(new Guid(cmd.requestId)); break; //case eCommand.OrdersLoad: // mcmd = new OrderMasterData() { // Command = cmd.command, // ORD_NO=((orderMaster)cmd).ORD_NO, // Status = ((orderMaster)cmd).Status // }; // Sendback((O)mcmd, cbsend); // break; case eCommand.OrdersUpload: mcmd = new OrderMasterData() { Command = cmd.command, ORD_NO = ((orderMaster)cmd).ORD_NO, Status = ((orderMaster)cmd).Status }; Sendback((O)mcmd, cbsend); break; case eCommand.OrderUpdatesComplete: mreq = (manifestRequest)cmd; if (mreq.valist != null) { foreach (var it in mreq.valist) { mcmd = new OrderMasterData() { RequestId = new Guid(cmd.requestId), ORD_NO = (int)it, Command = eCommand.ManifestDetailsComplete }; Sendback((O)mcmd, cbsend); } } break; case eCommand.OrderDetails: mcmd = new OrderDetailsData((orderDetails)cmd); Sendback((O)mcmd, cbsend); break; case eCommand.OrderDetailsComplete: mreq = (manifestRequest)cmd; if (mreq.valist != null) { foreach (var it in mreq.valist) { mcmd = new OrderDetailsData() { RequestId = new Guid(cmd.requestId), ORD_NO = it, LineNumber = mreq.Stop, // using as the count (number of OrderDetail Records Expected) Command = eCommand.OrderDetailsComplete }; Sendback((O)mcmd, cbsend); } } break; case eCommand.OrderOptions: mcmd = new OrderOptionsData((orderOptions)cmd); Sendback((O)mcmd, cbsend); break; case eCommand.OrderOptionsComplete: mreq = (manifestRequest)cmd; if (mreq.valist != null) { foreach (var it in mreq.valist) { mcmd = new OrderOptionsData() { RequestId = new Guid(cmd.requestId), ORD_NO = (int)it, Count = mreq.Stop, // using as the count (number of OrderDetail Records Expected) Command = eCommand.OrderOptionsComplete }; Sendback((O)mcmd, cbsend); } } break; case eCommand.ScanFile: mcmd = new ScanFileData((scanFile)cmd); Sendback((O)mcmd, cbsend); break; case eCommand.Trucks: mcmd = new TruckData((trucks)cmd); Sendback((O)mcmd, cbsend); break; case eCommand.TrucksLoadComplete: mreq = (manifestRequest)cmd; mcmd = new TruckData() { RequestId = new Guid(cmd.requestId), ManifestId = mreq.id, Command = eCommand.TrucksLoadComplete }; Sendback((O)mcmd, cbsend); break; case eCommand.Stops: mcmd = new StopData((stops)cmd); Sendback((O)mcmd, cbsend); break; case eCommand.StopsLoadComplete: mcmd = new StopData() { Command = cmd.command, RequestId = new Guid(cmd.requestId) }; mreq = (manifestRequest)cmd; if (mreq.valist != null) { foreach (var id in mreq.valist) { mcmd = new StopData() { Command = cmd.command, //TruckCode = TRK_CDE, RequestId = new Guid(cmd.requestId) }; Sendback((O)mcmd, cbsend); } } else { mcmd = new StopData() { Command = cmd.command, //TruckCode = TRK_CDE, RequestId = new Guid(cmd.requestId) }; Sendback((O)mcmd, cbsend); } break; case eCommand.OrdersLoad: mcmd = new OrderData((orders)cmd); Sendback((O)mcmd, cbsend); break; case eCommand.OrdersLoadComplete: mreq = (manifestRequest)cmd; if (mreq.valist != null) { foreach (var id in mreq.valist) { mcmd = new OrderData() { Command = cmd.command, DLR_NO = (int)id, RequestId = new Guid(cmd.requestId) }; Sendback((O)mcmd, cbsend); } } else { Logger.Info($"OrdersLoadComplete: {cmd.ToString()}"); mcmd = new OrderData() { Command = cmd.command, // DLR_NO = id, RequestId = new Guid(cmd.requestId) }; Sendback((O)mcmd, cbsend); } break; case eCommand.UploadManifestComplete: mcmd = new ManifestMasterData() { Command = cmd.command, RequestId = NewGuid(cmd.requestId) }; Sendback((O)mcmd, cbsend); break; default: Logger.Error($"Unhandled command Backgrtound worker handler {Enum.GetName(typeof(eCommand), cmd.command)}."); break; } }
public void bgWorker_DoWork(object sender, DoWorkEventArgs e) { object[] parameters = e.Argument as object[]; manifestRequest req = (manifestRequest)parameters[0]; try { Request reqInfo = (Request)parameters[1]; Logger.Info($"bgWorker_DoWork {Enum.GetName(typeof(eCommand), req.command)} "); switch (req.command) { case eCommand.Drivers: case eCommand.Manifest: case eCommand.GenerateManifest: case eCommand.LoadFiles: if (!sm(req)) { throw new Exception("UMBackgroundWorker::connectionVM.SendMsgWinsys - Failed to send Winsys Server a message"); } break; case eCommand.ManifestDetails: case eCommand.OrderDetails: case eCommand.OrderOptions: case eCommand.OrdersUpload: case eCommand.OrdersLoad: case eCommand.Trucks: case eCommand.Stops: case eCommand.UploadManifest: case eCommand.UploadManifestComplete: case eCommand.CompleteStop: case eCommand.CompleteOrder: case eCommand.AccountReceivable: sm(req); break; case eCommand.TrucksLoadComplete: CompleteBackgroundWorker(NewGuid(req.requestId)); break; default: throw new Exception("Command not found"); } } catch (Exception ex) { } finally { if (dDoneEvent.ContainsKey(new Guid(req.requestId))) { if (dDoneEvent[new Guid(req.requestId)].secReset > 0) { dDoneEvent[new Guid(req.requestId)].evnt.WaitOne(dDoneEvent[new Guid(req.requestId)].secReset); } else { dDoneEvent[new Guid(req.requestId)].evnt.WaitOne(); } } } }
public isaCommand ReceiveMessage(isaCommand cmd) { switch (cmd.command) { case eCommand.Ping: Logger.Debug($"ReceiveMessage - Received Ping / Replying Pong.."); WinSysSM.SendMessage(new Command() { command = eCommand.Pong }); break; case eCommand.Pong: Logger.Debug($"ReceiveMessage - Received Pong"); break; case eCommand.GetNewHeads: Logger.Debug("GetNewHeads"); manifestRequest req = (manifestRequest)cmd; dRetCall[NewGuid(cmd.requestId)](req.ToArray()); // cbsend(new Command() { command = eCommand.GetNewHeads }.ToArray()); break; case eCommand.CreateCustomerAccount: Logger.Debug("CreateCustomerAccount"); dRetCall[NewGuid(cmd.requestId)](cmd.ToArray()); // cbsend(new Command() { command = eCommand.CreateCustomerAccount }.ToArray()); break; case eCommand.GetCustomerBalance: Logger.Debug("GetCustomerBalance"); dRetCall[NewGuid(cmd.requestId)](cmd.ToArray()); break; case eCommand.CreateOrder: Logger.Debug("CreateOrder"); dRetCall[NewGuid(cmd.requestId)](cmd.ToArray()); break; case eCommand.ConfirmDelivery: Logger.Debug("ConfirmDelivery"); dRetCall[NewGuid(cmd.requestId)](cmd.ToArray()); break; case eCommand.Withdraw: Logger.Debug("Withdraw"); dRetCall[NewGuid(cmd.requestId)](cmd.ToArray()); break; case eCommand.SweepToCold: Logger.Debug("SweepToCold"); dRetCall[NewGuid(cmd.requestId)](cmd.ToArray()); break; case eCommand.TransferToHot: Logger.Debug("TransferToHot"); dRetCall[NewGuid(cmd.requestId)](cmd.ToArray()); break; default: Logger.Error("ReceiveMessage - ERROR Unknown command. Parse Error MDM-API"); break; } return(cmd); }
public bool SendMsgUMDAPI(manifestRequest req) { return(connectivityModel.SendMsgUMDAPI(req)); }
public isaCommand ReceiveMessage(isaCommand cmd) { switch (cmd.command) { case eCommand.Ping: Logger.Debug($"ReceiveMessage - Received Ping / Replying Pong.."); WinSysSM.SendMessage(new Command() { command = eCommand.Pong }); break; case eCommand.Pong: Logger.Debug($"ReceiveMessage - Received Pong"); break; case eCommand.LoadFiles: Logger.Info($"ReceiveMessage - Copy Files from Winsys Server Paths top App Server Paths:{cmd.ToString()}"); //CopyFilesToServer(DateTime.Today); Logger.Info($"ReceiveMessage - Replying LoadFilesComplete..."); WinSysSM.SendMessage(new Command() { command = eCommand.LoadFilesComplete }); //cbsend(new Command() { command = eCommand.LoadFilesComplete }.ToArray()); break; case eCommand.GenerateManifest: Logger.Info($"ReceiveMessage - Generate Manifest from Winsys and SqlServer:{cmd.ToString()}"); manifestRequest req = (manifestRequest)cmd; WinSysSM.SendMessage(req); break; case eCommand.ManifestDetails: Logger.Info($"ReceiveMessage - Generate Manifest Details from Winsys - API Drill Down:{cmd.ToString()}"); //drillDown.reportMDProgressChanged(50, cmd ); foreach (var mmd in UMDServer.Persist(SPCmds.INSERTMANIFESTDETAILS, new ManifestDetailsData((manifestDetails)cmd))) { drillDown.GetOrderMasterData((ManifestDetailsData)mmd); } break; case eCommand.ManifestDetailsComplete: Logger.Info($"ReceiveMessage - ManifestDetailsComplete:{cmd.ToString()}"); //drillDown.reportMDProgressChanged(100, cmd); break; case eCommand.Orders: Logger.Info($"ReceiveMessage - Orders reqId: {cmd.requestId}"); foreach (var omd in UMDServer.Persist(SPCmds.INSERTORDER, new OrderMasterData((orderMaster)cmd))) { drillDown.GetOrderDetailsData((OrderMasterData)omd); drillDown.GetOrderOptionsData((OrderMasterData)omd); } break; case eCommand.OrderOptions: Logger.Info($"ReceiveMessage - OrderOptions reqId:{cmd.ToString()}"); UMDServer.Persist(SPCmds.INSERTORDEROPTIONS, new OrderOptionsData((orderOptions)cmd)); break; case eCommand.OrderDetails: Logger.Info($"ReceiveMessage - OrderDetails:{cmd.ToString()}"); UMDServer.Persist(SPCmds.INSERTORDERDETAILS, new OrderDetailsData((orderDetails)cmd)); // drillDown.GetOrderMasterData((ManifestDetailsData)mmd); break; case eCommand.RunQuery: //DriverData dd = (DriverData)GetDrivers(cbsend); break; case eCommand.Drivers: Logger.Info($"ReceiveMessage - Drivers:{cmd.ToString()}"); break; case eCommand.OrderDetailsComplete: Logger.Info($"ReceiveMessage - OrderDetailsComplete:{cmd.ToString()}"); break; case eCommand.OrderOptionsComplete: Logger.Info($"ReceiveMessage - OrderOptionsComplete:{cmd.ToString()}"); break; case eCommand.OrderUpdatesComplete: Logger.Info($"ReceiveMessage - OrderUpdatesComplete:{cmd.ToString()}"); break; default: Logger.Error("ReceiveMessage - ERROR Unknown command. Parse Error MDM-API"); break; } return(cmd); }
public void HandleClientCmd(byte[] bytes_cmd, Func <byte[], Task> cbsend) { isaCommand cmd = new Command().FromArray(bytes_cmd); switch (cmd.command) { case eCommand.Ping: Logger.Debug("HandleClientCmd - Received Ping / Replying Pong.."); cbsend(new Command() { command = eCommand.Pong }.ToArray()); break; case eCommand.Pong: Logger.Debug("HandleClientCmd - Received Pong"); break; case eCommand.GenerateManifest: Logger.Info($"HandleClientCmd - Generate Manifest:{cmd.ToString()}"); manifestMaster mM = (manifestMaster) new manifestMaster().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd Generate Manifest from Winsys and SqlServer:{mM.ToString()}"); if (mM.LINK != 0) { ManifestMasterData mmd1 = (ManifestMasterData)UMDServer.QueryData(cbsend, mM); Logger.Info($"API Manager GenerateManifest QueryData Complete. {mmd1.ToString()}"); } else { WinSysSM.SendMessage(cmd); } break; case eCommand.CheckManifest: Logger.Info($"HandleClientCmd - CheckManifest: {cmd.ToString()}"); manifestMaster mMst = (manifestMaster) new manifestMaster().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd Check Manifest in ManagerAPI/SqlServer: {mMst.ToString()}"); ManifestMasterData mamd = (ManifestMasterData)UMDServer.QueryData(cbsend, mMst); Logger.Info($"API Manager Check Manifest. {mamd.ToString()}"); break; case eCommand.Manifest: Logger.Info($"HandleClientCmd - Manifest: {cmd.ToString()}"); cbsend(cmd.ToArray()); break; case eCommand.OrdersUpload: Logger.Info($"HandleClientCmd - Orders: {cmd.ToString()}"); orderMaster om = (orderMaster) new orderMaster().FromArray(bytes_cmd); List <OrderMasterData> ordList = new List <OrderMasterData>(); Logger.Info($"Persist INSERTORDER {om.ToString()}"); // om.Status = OrderStatus.Shipped; foreach (OrderMasterData omd in UMDServer.Persist(SPCmds.INSERTORDER, new OrderMasterData(om))) { ordList.Add(omd); Logger.Info($"Orders - drillDown.GetOrderDetailsData: {omd.ToString()}"); omd.Command = eCommand.OrdersLoadComplete; } //foreach (var ord in ordList) //{ // drillDown.GetOrderDetailsData(ord); // drillDown.GetOrderOptionsData(ord); //} drillDown.GetOrderDetailsData(ordList); drillDown.GetOrderOptionsData(ordList); Logger.Info($"INSERTORDER Complete. OrdersLoadComplete: {om.ToString()}"); om.command = eCommand.ManifestDetailsComplete; cbsend(om.ToArray()); break; case eCommand.CompleteOrder: Logger.Info($"HandleClientCmd - Close Order: {cmd.ToString()}"); manifestRequest mreq = (manifestRequest) new manifestRequest().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - CompleteOrder: {mreq.ToString()}"); orderMaster cs = (orderMaster) new orderMaster().FromArray(mreq.bData); Logger.Info($"Persist COMPLETEORDER {cs.ToString()}"); var no = new OrderMasterData(cs); foreach (OrderMasterData omd in UMDServer.Persist(SPCmds.COMPLETEORDER, no)) { Logger.Info($"Persisted COMPLETEORDER {omd.ToString()}"); cbsend(new orderMaster(omd).ToArray()); } break; case eCommand.CompleteStop: Logger.Info($"HandleClientCmd - Close Stop for Orders: {cmd.ToString()}"); manifestRequest mreqs = (manifestRequest) new manifestRequest().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - CompleteStop: {mreqs.ToString()}"); StopData sd = new StopData(); sd.POD = mreqs.bData; sd.ManifestId = mreqs.id; sd.DisplaySeq = (int)mreqs.DATA; sd.Orders = new List <OrderMasterData>(); //temp - uncomment! // mreqs.valist.ForEach(v => sd.Orders.Add(new OrderMasterData() { DSP_SEQ=sd.DisplaySeq, ManifestId=sd.ManifestId, ORD_NO = v })); Logger.Info($"Persist COMPLETESTOP {sd.ToString()}"); foreach (StopData omd in UMDServer.Persist(SPCmds.COMPLETESTOP, sd)) { Logger.Info($"Persisted COMPLETESTOP {sd.ToString()}"); cbsend(new stops(sd).ToArray()); } break; case eCommand.OrderOptions: //throw new Exception("This should be handled by the Receive Message handler."); Logger.Info($"HandleClientCmd - OrderOptions:{cmd.ToString()}"); manifestRequest mreqoo = (manifestRequest) new manifestRequest().FromArray(bytes_cmd); OrderOptionsData ood = (OrderOptionsData)UMDServer.QueryData(cbsend, mreqoo); Logger.Info($"API Manager QueryData OrderOptionsData. {ood.ToString()}"); break; case eCommand.OrderDetails: Logger.Info($"HandleClientCmd - OrderDetails:{cmd.ToString()}"); manifestRequest mreqod = (manifestRequest) new manifestRequest().FromArray(bytes_cmd); OrderDetailsData odd = (OrderDetailsData)UMDServer.QueryData(cbsend, mreqod); Logger.Info($"API Manager OrderDetailsData QueryData. {odd.ToString()}"); break; case eCommand.UploadManifest: Logger.Info($"HandleClientCmd - UploadManifest:{cmd.ToString()}"); mreq = (manifestRequest) new manifestRequest().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - UploadManifest: {mreq.ToString()}"); manifestMaster mm = (manifestMaster) new manifestMaster().FromArray(mreq.bData); if (!dRetCall.ContainsKey(NewGuid(mm.requestId))) { dRetCall.Add(NewGuid(mm.requestId), cbsend); } Logger.Info($"UploadManifest cb dRetCall: {mm.ToString()}"); try { foreach (ManifestMasterData mmdit in UMDServer.Persist(SPCmds.INSERTMANIFEST, new ManifestMasterData(mm, mm.id))) { Logger.Info($"HandleClientCmd - UploadManifest Persisted:{mmdit.ToString()}"); Logger.Info($"UploadManifest - Get ManifestDetails: {mmdit.ToString()}"); if (!dManDetails.ContainsKey(mmdit.RequestId.ToString() + mmdit.ManifestId.ToString())) { dManDetails.Add(mmdit.RequestId.ToString() + mmdit.ManifestId.ToString(), new List <ManifestDetailsData>()); } drillDown.GetManifestDetails(mmdit); } mm.command = eCommand.UploadManifestComplete; Logger.Info($"UploadManifest - ManifestLoadComplete: {mm.ToString()}"); cbsend(mm.ToArray()); } catch (Exception e) { Logger.Debug("HandleClientCmd - Error exception = " + e.Message); dRetCall.Remove(NewGuid(mm.requestId)); } break; case eCommand.Trucks: isaCommand req = new manifestRequest().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - Trucks: {req.ToString()}"); TruckData td = (TruckData)UMDServer.QueryData(cbsend, req); Logger.Info($"HandleClientCmd - Trucks: {td.ToString()}"); break; case eCommand.Drivers: req = new manifestRequest().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - Drivers: {req.ToString()}"); DriverData dd = (DriverData)UMDServer.QueryData(cbsend, req); Logger.Info($"HandleClientCmd - Drivers: {dd.ToString()}"); break; case eCommand.Stops: req = new manifestRequest().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd Stops: {req.ToString()}"); StopData sdt = (StopData)UMDServer.QueryData(cbsend, req); Logger.Info($"Stops QueryData: {sdt.ToString()}"); break; case eCommand.OrdersLoad: req = new manifestRequest().FromArray(bytes_cmd); Logger.Info($"HandleClientCmd - OrdersLoad (Start QueryData): {req.ToString()}"); OrderData od = (OrderData)UMDServer.QueryData(cbsend, req); Logger.Info($"OrdersLoad QueryData: {od.ToString()}"); break; case eCommand.AccountReceivable: req = new manifestRequest().FromArray(bytes_cmd); manifestRequest mr = (manifestRequest)req; accountReceivable arecv = (accountReceivable) new accountReceivable().FromArray(mr.bData); Logger.Info($"HandleClientCmd - AccountRecievable"); AccountsReceivableData ard = (AccountsReceivableData) UMDServer.QueryData(cbsend, arecv); Logger.Info($"AccountsReceivables Complete."); break; default: Logger.Error("HandleClientCmd - ERROR Unknown command. Parse Error MDM-API"); break; } }
public isaCommand ReceiveMessage(isaCommand cmd) { switch (cmd.command) { case eCommand.Ping: Logger.Debug($"ReceiveMessage - Received Ping / Replying Pong.."); WinSysSM.SendMessage(new Command() { command = eCommand.Pong }); break; case eCommand.Pong: Logger.Debug($"ReceiveMessage - Received Pong"); break; case eCommand.LoadFiles: Logger.Info($"ReceiveMessage - Copy Files from Winsys Server Paths top App Server Paths:{cmd.ToString()}"); //CopyFilesToServer(DateTime.Today); Logger.Info($"ReceiveMessage - Replying LoadFilesComplete..."); WinSysSM.SendMessage(new Command() { command = eCommand.LoadFilesComplete }); //cbsend(new Command() { command = eCommand.LoadFilesComplete }.ToArray()); break; case eCommand.GenerateManifest: Logger.Info($"ReceiveMessage - Generate Manifest from Winsys and SqlServer:{cmd.ToString()}"); manifestRequest req = (manifestRequest)cmd; WinSysSM.SendMessage(req); break; case eCommand.ManifestDetails: Logger.Info($"ReceiveMessage - Generate Manifest Details from Winsys - API Drill Down:{cmd.ToString()}"); manifestDetails manDet = (manifestDetails)cmd; ManifestDetailsData manDetData = new ManifestDetailsData(manDet); Logger.Info($"INSERTMANIFESTDETAILS (Persist): {manDetData.ToString()}"); if (!dManDetails.ContainsKey(manDetData.RequestId.ToString() + manDetData.ManId.ToString())) { dManDetails.Add(manDetData.RequestId.ToString() + manDetData.ManId.ToString(), new List <ManifestDetailsData>()); } foreach (var omdit in UMDServer.Persist(SPCmds.INSERTMANIFESTDETAILS, manDetData)) { dManDetails[manDetData.RequestId.ToString() + manDetData.ManId.ToString()].Add(manDetData); } Logger.Info($"ManifestDetails Complete: {manDet.ToString()}"); break; case eCommand.ManifestDetailsComplete: Logger.Info($"ReceiveMessage - ManifestDetailsComplete:{cmd.ToString()}"); req = (manifestRequest)cmd; List <ManifestDetailsData> mdd = null; if (dManDetails.ContainsKey(NewGuid(req.requestId).ToString() + req.id.ToString())) { mdd = dManDetails[NewGuid(req.requestId).ToString() + req.id.ToString()]; dManDetails.Remove(NewGuid(req.requestId).ToString() + req.id.ToString()); } if (!dManDetails.ContainsKey(NewGuid(req.requestId).ToString()) && mdd != null && mdd.Count > 0) { drillDown.GetOrderMasterData(new manifestRequest() { valist = req.valist, requestId = req.requestId, date = req.date, id = req.id }); } dRetCall[NewGuid(cmd.requestId)](req.ToArray()); //drillDown.reportMDProgressChanged(100, cmd); break; case eCommand.OrdersUpload: Logger.Info($"ReceiveMessage - Orders reqId: {cmd.requestId}"); List <IMDMMessage> lstOrd = new List <IMDMMessage>(); OrderMasterData omd = new OrderMasterData(((orderMaster)cmd)); orderMaster om = new orderMaster(omd); //omd.Status = OrderStatus.Shipped; lock (dOrdLock) { if (!dOrdersMaster.ContainsKey(omd.RequestId.ToString() + omd.ManId.ToString())) { dOrdersMaster.Add(omd.RequestId.ToString() + omd.ManId.ToString(), new List <OrderMasterData>()); } } if (!dOrdersMaster[omd.RequestId.ToString() + omd.ManId.ToString()].Contains(omd)) { foreach (var omdit in UMDServer.Persist(SPCmds.INSERTORDER, omd)) { lock (dOrdLock) dOrdersMaster[omd.RequestId.ToString() + omd.ManId.ToString()].Add((OrderMasterData)omdit); } } break; case eCommand.OrdersLoad: Logger.Info($"ReceiveMessage - OrdersLoad reqId: {cmd.requestId}"); orderMaster ord = (orderMaster)cmd; OrderMasterData omdata = new OrderMasterData(ord); lock (dOrdLock) { if (!dOrdersMaster.ContainsKey(NewGuid(ord.requestId).ToString() + ord.ManId.ToString())) { dOrdersMaster.Add(NewGuid(ord.requestId).ToString() + ord.ManId.ToString(), new List <OrderMasterData>()); } } if (!dOrdersMaster[omdata.RequestId.ToString() + omdata.ManId.ToString()].Contains(omdata)) { foreach (var omdit in UMDServer.Persist(SPCmds.INSERTORDER, omdata)) { lock (dOrdLock) dOrdersMaster[omdata.RequestId.ToString() + omdata.ManId.ToString()].Add((OrderMasterData)omdit); } } break; case eCommand.OrdersLoadComplete: Logger.Info($"ReceiveMessage - OrdersLoadComplete:{cmd.ToString()}"); req = (manifestRequest)cmd; if (dOrdersMaster.ContainsKey(NewGuid(cmd.requestId).ToString() + req.id)) { List <OrderMasterData> lMOrd = dOrdersMaster[NewGuid(cmd.requestId).ToString() + req.id.ToString()].Distinct().ToList(); lMOrd.ForEach(x => Logger.Info($"ordldcmp{x.ORD_NO}")); drillDown.GetDrillDownData(req.valist, eCommand.OrderDetails, req.requestId, 1); drillDown.GetDrillDownData(req.valist, eCommand.OrderOptions, req.requestId); lock (dOrdLock) dOrdersMaster.Remove(NewGuid(cmd.requestId).ToString() + req.id); } else { Logger.Info($"No Orders for {cmd.ToString()}"); } // throw new Exception("OrdersLoadComplete - response not mapped in dOrderMaster. " + // "Request Id: {NewGuid(cmd.requestId).ToString()} , id: {req.id}. "); dRetCall[NewGuid(cmd.requestId)](req.ToArray()); break; case eCommand.OrderDetails: Logger.Info($"ReceiveMessage - OrderDetails:{cmd.ToString()}"); try { orderDetails od = (orderDetails)cmd; OrderDetailsData odd = new OrderDetailsData(od); lock (dOrdLock) { if (!dOrdersDetails.ContainsKey(odd.RequestId)) { dOrdersDetails.Add(odd.RequestId, new List <OrderDetailsData>()); } } foreach (var odit in UMDServer.Persist(SPCmds.INSERTORDERDETAILS, odd)) { Logger.Info($"INSERTORDERDETAILS Complete: {odit.ToString()}"); } //dRetCall[NewGuid(od.requestId)](cmd.ToArray()); } catch (Exception ex) { Logger.Error($"eCommand.OrderDetails {ex.Message}"); } break; case eCommand.OrderDetailsComplete: Logger.Info($"ReceiveMessage - OrderDetailsComplete:{cmd.ToString()}"); // Can we detrmine the completed transaction at this point from the cmd in order to clean the completed tx for dRetCall req = (manifestRequest)cmd; lock (dOrdLock) { if (dOrdersDetails.ContainsKey(NewGuid(cmd.requestId))) { // drillDown.GetOrderOptionsData(dOrdersDetails[NewGuid(cmd.requestId)].Distinct().ToList()); //drillDown.GetOrderOptionsData(ordersToRequestDetails[NewGuid(cmd.requestId)]); dOrdersDetails.Remove(NewGuid(cmd.requestId)); } } //dRetCall[NewGuid(cmd.requestId)](req.ToArray()); break; case eCommand.OrderOptions: Logger.Info($"ReceiveMessage - OrderOptions reqId:{cmd.ToString()}"); try { orderOptions oo = (orderOptions)cmd; OrderOptionsData ood = new OrderOptionsData(oo); foreach (var oodit in UMDServer.Persist(SPCmds.INSERTORDEROPTIONS, ood)) { Logger.Info($"INSERTORDEROPTIONS Complete: {oodit.ToString()}"); } //oo.command = eCommand.OrderOptionsComplete; //dRetCall[NewGuid(oo.requestId)](cmd.ToArray()); } catch (Exception ex) { Logger.Error($"eCommand.OrderOptions {ex.Message}"); } break; case eCommand.OrderOptionsComplete: Logger.Info($"ReceiveMessage - OrderOptionsComplete:{cmd.ToString()}"); // Can we detrmine the completed transaction at this point from the cmd in order to clean the completed tx for dRetCall req = (manifestRequest)cmd; dRetCall[NewGuid(cmd.requestId)](req.ToArray()); break; case eCommand.OrderUpdatesComplete: Logger.Info($"ReceiveMessage - OrderUpdatesComplete:{cmd.ToString()}"); req = (manifestRequest)cmd; dRetCall[NewGuid(cmd.requestId)](req.ToArray()); break; case eCommand.ManifestLoadComplete: Logger.Info($"ReceiveMessage - OrdersLoadComplete:{cmd.ToString()}"); Logger.Info($"ReceiveMessage - OrderDetailsComplete:{cmd.ToString()}"); req = (manifestRequest)cmd; dRetCall[NewGuid(cmd.requestId)](req.ToArray()); break; case eCommand.ScanFile: Logger.Info($"ReceiveMessage Cached Success - ScanFile:{cmd.ToString()}"); scanFile sf = (scanFile)cmd; ScanFileData sfd = new ScanFileData(sf); foreach (var scnfle in UMDServer.Persist(SPCmds.INSERTSCANFILE, sfd)) { Logger.Info($"INSERTSCNFLE Complete: {scnfle.ToString()}"); } //if(cmd.requestId==null) // dRetCall.FirstOrDefault().Value(sf.ToArray()); //else // dRetCall[NewGuid(cmd.requestId)](sf.ToArray()); break; default: Logger.Error("ReceiveMessage - ERROR Unknown command. Parse Error MDM-API"); break; } return(cmd); }
//public void GetOrderMasterData(List<ManifestDetailsData> mddLst) //public void GetOrderMasterData(ManifestMasterData mdd) //{ // var req = new manifestRequest() // { // command = eCommand.Orders, // requestId = mdd.RequestId.ToByteArray(), // id=mdd.ManifestId // }; // sm(req); //} public void GetOrderMasterData(manifestRequest mr) { mr.command = eCommand.OrdersLoad; sm(mr); }
//public ICommand IsConnectedWinSys = ConnectState.Connected; public bool SendMsgWinsys(manifestRequest req) { return(connectivityModel.SendMsgWinsys(req)); }