public ReadQueuePNRMsg GetPNRMsg(XmlElement xmlPNR, PNRMsgTemplateEnum _template) { ReadQueuePNRMsg pnrMsg = null; string recloc = ReclocProcessor.GetReclocFromPNRXml(xmlPNR); switch (_template) { case PNRMsgTemplateEnum.PNRMsg: pnrMsg = new ReadQueuePNRMsg() { Recloc = recloc }; break; case PNRMsgTemplateEnum.VendorRemarkPNRMsg: pnrMsg = new VendorRemarkQueuePNRMsg() { Recloc = recloc, GeneralRemark = ReclocProcessor.GetGeneralRemarks(xmlPNR), VendorRemark = ReclocProcessor.GetVendorRemarks(xmlPNR), }; break; default: pnrMsg = new ReadQueuePNRMsg() { Recloc = recloc }; break; } return(pnrMsg); }
public ReadQueuePNRMsg ReadQueue(int _qNumber, string _session, PNRMsgTemplateEnum _template) { ReadQueuePNRMsg pnrMsg = null; if (!string.IsNullOrEmpty(_session)) { objGalConn.SessionID = _session; } QueueProcessor objQProc = new QueueProcessor(objGalConn); XmlElement xmlPNR = objQProc.ReadPNRFromQ(_qNumber); pnrMsg = GetPNRMsg(xmlPNR, _template); return(pnrMsg); }
public ReadQueuePNRMsg RemoveNGetNextPNRMsg(string _session, PNRMsgTemplateEnum _template) { ReadQueuePNRMsg pnrMsg = null; if (!string.IsNullOrEmpty(_session)) { objGalConn.SessionID = _session; } QueueProcessor objQProc = new QueueProcessor(objGalConn); XmlElement xmlPNR = objQProc.RemoveNReadNextPNR(); pnrMsg = GetPNRMsg(xmlPNR, _template); return(pnrMsg); }
public void ScanGDSQueue() { int currentQKnt = 0; try { #region GET QUEUE COUNT try { currentQKnt = _gdsPro.GetQCount(_qNumber, _pcc); } catch (Exception ex) { currentQKnt = 0; LogMsg logMsg = LoggingMsgComposer.GetLogMsg(RoboticsLogLevelEnum.Error, Constants.Q_COUNT_ERROR_MSG + Environment.NewLine + ex.Message, _serviceName, _qNumber); _objCloudLoggingQ.AddMsgToLoggingQ(logMsg); } #endregion if (currentQKnt > 0) { ReadQueuePNRMsg currentPNR = null; ReadQueuePNRMsg previousPNR = null; //READ QUEUE currentPNR = _gdsPro.ReadQueue(_qNumber, string.Empty, _msgTemplate); //TRAVERSE GAL QUEUE TO REMOVE PNR AND ADD TO AZURE Q for (int i = 0; i < currentQKnt; i++) { if (currentPNR != null && !string.IsNullOrEmpty(currentPNR.Recloc)) { currentPNR.PCC = _pcc; currentPNR.FromQueue = _qNumber; currentPNR.StartTime = DateTime.Now; previousPNR = null; previousPNR = currentPNR.DeepClone(); //_pnrMovementMsg = string.Format(_pnrMovementMsg, // REMOVE CURRENT PNR AND READ NEXT currentPNR = _gdsPro.RemoveNGetNextPNRMsg(string.Empty, _msgTemplate); if (_objDestinationCloudQ != null) { //PUSH MSG INTO AZURE QUEUE (/////IF IT FAILS THEN ADD PNR BACK TO GAL QUEUE/////) _objDestinationCloudQ.AddPNRToCloudQ(previousPNR); } //ADD MESSAGE TO LOGGING QUEUE _pnrMovementMsg = string.Format(_pnrMovementMsg, previousPNR.Recloc); LogMsg logMsg = LoggingMsgComposer.GetLogMsg(RoboticsLogLevelEnum.Info, _pnrMovementMsg, _serviceName, _qNumber); _objCloudLoggingQ.AddMsgToLoggingQ(logMsg); } else { break; } currentQKnt = currentQKnt - 1; } try { _gdsPro.CloseSession(string.Empty); } catch { } } } catch (Exception ex) { //LOG EXECEPTION (/////// RESOLVE ISSUE OF SESSION OUT) if (_gdsPro != null) { try { _gdsPro.CloseSession(string.Empty); } catch (Exception SessionCloseEx) { } } try { LogMsg logMsg = LoggingMsgComposer.GetLogMsg(RoboticsLogLevelEnum.Error, Constants.OUTER_CATCH_BLOCK_ERROR_MSG + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace, _serviceName, _qNumber); _objCloudLoggingQ.AddMsgToLoggingQ(logMsg); } catch (Exception innerEx) { //LOG into local file _roboticsLogger.WriteLog(RoboticsLogLevelEnum.Error, LoggingMsgComposer.GetLogMsg(RoboticsLogLevelEnum.Error, Constants.OUTER_CATCH_BLOCK_ERROR_MSG + Environment.NewLine + innerEx.Message + Environment.NewLine + innerEx.StackTrace, _serviceName, _qNumber).ToString()); } } }