/// <summary> /// Logs iterface transation (EdgeFrontier SendEmail) /// to the to the logging table. /// </summary> /// <param name="message">XML message that was sent.</param> /// <returns>Returns 'true' if successfull and 'false' if it fails.</returns> private bool logToDB(string message) { bool ReturnVal = true; SendReceiveMessageLogger msgLogger; try { msgLogger = new SendReceiveMessageLogger(); msgLogger.Interactive = GTInteractive; msgLogger.Interface_Name = "Send Email"; msgLogger.Component_Name = "GTech Client"; msgLogger.Correlation_Id = correlationId; msgLogger.Log_Detail = message; //ReturnVal = msgLogger.logEntry(); } catch (Exception e) { if (GTInteractive == true) { MessageBox.Show("SendEmail:" + e.Message, "getCorrelationId Error", MessageBoxButtons.OK); } else { if (EventLog.SourceExists("Application Error")) { EventLog.WriteEntry("Application Error", "Error in G/Technology Custom SendEmail - logErrorToDB: " + e.Message); } } ReturnVal = false; } return(ReturnVal); }
/// <summary> /// Method to update theTicket status for input NJUNS ticket Id and Ticket number in GIS NJUNS tables /// </summary> public void UpdateTicketStatus() { string errorMessage = string.Empty; string updateTicketStatusSql; try { int iRecordsAffected = 0; if (!string.IsNullOrEmpty(NJUNS_TICKET_ID)) { updateTicketStatusSql = string.Format("UPDATE GIS_ONC.NJUNS_TICKET SET TICKET_STATUS = '{0}' WHERE NJUNS_TICKET_ID = '{1}' AND TICKET_NUMBER = {2}", TICKET_STATUS, NJUNS_TICKET_ID, TICKET_NUMBER); } else { updateTicketStatusSql = string.Format("UPDATE GIS_ONC.NJUNS_TICKET SET TICKET_STATUS = '{0}' WHERE TICKET_NUMBER = {1}", TICKET_STATUS, TICKET_NUMBER); } DataContext.Execute(updateTicketStatusSql, out iRecordsAffected, (int)CommandTypeEnum.adCmdText); } catch (Exception ex) { errorMessage = string.Format("Failed to update ticket records for Ticket ID #", NJUNS_TICKET_ID); SendReceiveMessageLogger m_messageLogger = new SendReceiveMessageLogger { Log_Detail = ex.Message }; LogErrorMessages(m_messageLogger, m_interfacePoint); if (Equals(Mode, 'I')) { MessageBox.Show(m_interfacePoint + " : " + errorMessage + Environment.NewLine + ex.Message, "UpdateTicketStatus Error", MessageBoxButtons.OK); } } }
/// <summary> /// Method to update the NJUNS ticket Id and Ticket number in GIS NJUNS tables for GIS ticket Id /// </summary> public void UpdateTicketIdAndStatus() { try { string errorMessage = string.Empty; try { int iRecordsAffected = 0; StringBuilder updateQuery = new StringBuilder(); updateQuery.AppendFormat(" BEGIN "); updateQuery.AppendFormat("UPDATE GIS_ONC.NJUNS_TICKET SET NJUNS_TICKET_ID = {0}, TICKET_NUMBER = '{1}' WHERE GIS_NJUNS_TICKET_ID = '{2}' ;", NJUNS_TICKET_ID, TICKET_NUMBER, GIS_NJUNS_TICKET_ID); updateQuery.AppendFormat("UPDATE GIS_ONC.NJUNS_STEP SET NJUNS_TICKET_ID = {0} WHERE GIS_NJUNS_TICKET_ID = '{1}' ;", NJUNS_TICKET_ID, GIS_NJUNS_TICKET_ID); updateQuery.AppendFormat(" COMMIT ; "); updateQuery.AppendFormat(" END ; "); DataContext.Execute(updateQuery.ToString(), out iRecordsAffected, (int)CommandTypeEnum.adCmdText); } catch (Exception ex) { errorMessage = "GIS -" + m_interfacePoint + " Failed :" + ex.Message; SendReceiveMessageLogger m_messageLogger = new SendReceiveMessageLogger { Log_Detail = ex.Message }; LogErrorMessages(m_messageLogger, m_interfacePoint); if (Equals(Mode, 'I')) { MessageBox.Show(m_interfacePoint + " : " + errorMessage + Environment.NewLine + ex.Message, "Submit Ticket Error", MessageBoxButtons.OK); } } } catch (Exception) { throw; } }
/// <summary> /// Method to log messages to INTERFACE_LOG table and INTERFACE_XML_DATA /// </summary> /// <param name="messageLogger">Instance of SendReceiveMessageLogger</param> public void LogErrorMessages(SendReceiveMessageLogger messageLogger, string interfacePoint) { try { if (messageLogger != null) { messageLogger.dataContext = DataContext; messageLogger.Interactive = Equals(Mode, 'I'); messageLogger.Correlation_Id = GetCorrelationId(); messageLogger.Interface_Name = interfacePoint; messageLogger.Component_Name = "GTech Client"; messageLogger.logEntry(); } } catch (Exception) { throw; } }
/// <summary> /// Generate a Correlation ID. /// </summary> /// <returns>Returns the Correleation string if it succeed /// and string.Empty if it fails.</returns> private string GetCorrelationId() { string ReturnVal = string.Empty; Recordset tmpRs = null; string tmpQry = string.Empty; try { tmpQry = "select GIS_STG.CORRELATION_ID_SEQ.nextval " + (char)34 + "NEXTVAL" + (char)34 + " from dual"; tmpRs = GetRecordSet(tmpQry); //m_DataContext.OpenRecordset(tmpQry, CursorTypeEnum.adOpenStatic, LockTypeEnum.adLockReadOnly, (int)CommandTypeEnum.adCmdText); tmpRs.MoveFirst(); ReturnVal = "GIS" + Convert.ToString(tmpRs.Fields[0].Value); return(ReturnVal); } catch (Exception ex) { SendReceiveMessageLogger m_messageLogger = new SendReceiveMessageLogger { Log_Detail = ex.Message }; LogErrorMessages(m_messageLogger, "GetCorrelationId"); if (Equals(Mode, 'I')) { MessageBox.Show(m_interfacePoint + ex.Message, "GetCorrelationId Error", MessageBoxButtons.OK); } return(ReturnVal); } finally { if (tmpRs != null) { tmpRs.Close(); tmpRs = null; } } }
/// <summary> /// Sends an request to the EdgeFrontier Email system /// </summary> /// <returns>Returns 'true' if successfull and 'false' if it fails.</returns> public bool sendEmail() { XmlSerializer sendEmailSerializer = new XmlSerializer(typeof(eMailRequest)); string tmpXML = string.Empty; StringWriter StrWrtr = new StringWriter(); XmlWriter XmlWrtr = XmlWriter.Create(StrWrtr); HttpWebRequest request; IGTApplication tmpApp = null; HttpWebResponse webresponse; StreamReader tmpReader; StringBuilder strBldr = new StringBuilder(); XmlDocument tmpXDoc = new XmlDocument(); System.IO.Stream requestStream; byte[] XMLBytes; string tmpException = string.Empty; SendReceiveMessageLogger msgLogger; bool logger = true; try { if (GTDataContext == null) { tmpApp = GTClassFactory.Create <IGTApplication>(); GTDataContext = tmpApp.DataContext; } if (EFUrl == string.Empty) { queryForURL(); } if (EmailRequest.Attachments == string.Empty) { EmailRequest.Attachments = " "; } correlationId = getCorrelationId(); // serialize the Email request sendEmailSerializer.Serialize(XmlWrtr, EmailRequest); tmpXML = StrWrtr.ToString(); tmpXML = tmpXML.Replace("</eMailRequest>", "<Correlation_Id>" + correlationId + "</Correlation_Id></eMailRequest>"); // code for Testing // create and send the web request. XMLBytes = System.Text.Encoding.ASCII.GetBytes(tmpXML); // log the message to be sent. msgLogger = new SendReceiveMessageLogger(); msgLogger.Interactive = GTInteractive; msgLogger.Interface_Name = "Send Email"; msgLogger.Component_Name = "GTech Client"; msgLogger.Correlation_Id = correlationId; msgLogger.xmlMessage = tmpXML; logger = msgLogger.logEntry(); // add a log entry // send the request request = HttpWebRequest.Create(EFUrl) as HttpWebRequest; request.Method = "POST"; request.ContentLength = XMLBytes.Length; request.ContentType = "text/xml; encoding='utf-8'"; requestStream = request.GetRequestStream(); requestStream.Write(XMLBytes, 0, XMLBytes.Length); requestStream.Close(); webresponse = request.GetResponse() as HttpWebResponse; //Get the Response. tmpReader = new StreamReader(webresponse.GetResponseStream()); strBldr.Append(tmpReader.ReadToEnd()); // Log the responce // get the status from the tmpXDoc.LoadXml(strBldr.ToString()); XmlNode root = tmpXDoc.FirstChild; XmlNodeList tmpNodeLst = root.SelectNodes("//Status"); tmpNodeLst[0].ToString(); // If the status is failure. if (tmpNodeLst[0].InnerText == "FAILURE") { tmpNodeLst = root.SelectNodes("//ErrorMsg"); string errStr = tmpNodeLst[0].InnerText; errStr = errStr.Replace("'", "''"); tmpException = "Email Failure " + errStr; msgLogger.Log_Detail = "SendEmail.sendEmail Error: " + tmpException; msgLogger.xmlMessage = tmpXDoc.OuterXml; //logToDB("SendEmail.sendEmail Error:" + tmpException); logger = msgLogger.logEntry(); if (GTInteractive == true) { MessageBox.Show("SendEmail: " + tmpException, "sendEmail Error", MessageBoxButtons.OK); } logger = false; } else { msgLogger.xmlMessage = tmpXDoc.OuterXml; msgLogger.Log_Detail = "Success"; logger = msgLogger.logEntry(); } } catch (Exception e) { if (GTInteractive == true) { MessageBox.Show("SendEmail: " + e.Message, "sendEmail Error", MessageBoxButtons.OK); logger = false; } else { logToDB("SendEmail.sendEmail Error: " + e.Message); } } return(logger); }