public string OutputXMLMessageGenerate(Guid MessageLogId, ReportRequest reportRequest) { //<? xml version = "1.0" ?> //< PersonCreate.response xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" > //< RequestID > 13B77B73 - A80D - 4E65 - BCC1 - B045867CE038 </ RequestID > //< PersonID > FFD9C2F7 - 70C4 - 4EBF - 90F4 - A30600FFF235 </ PersonID > //< ReturnCode > 0 </ ReturnCode > //< ReturnMessage > OK </ ReturnMessage > //</ PersonCreate.response > XElement result = null; result = new XElement(reportRequest.RequestType.ToString() + @"." + reportRequest.RequestAction + @".response", new XElement("MessageLogId", MessageLogId), new XElement("RequestID", reportRequest.RequestID.ToString()), new XElement("BusinessUnitID", reportRequest.BusinessUnitID), new XElement("ReturnType", reportRequest.ReturnType.ToString()), new XElement("ReturnCode", reportRequest.ReturnCode), new XElement("ReportResultXML", reportRequest.ReportResultXML), new XElement("ReturnMessage", reportRequest.ReturnMessage) ); return result.ToString(); }
public ReportRequest ProcessInputXMLReport(string messageText) { ReportRequest reportRequest = new ReportRequest(); try { XmlDocument doc = new XmlDocument(); doc.LoadXml(messageText); //Utilities.WriteLog(String.Format(Utilities.Cut(doc.ToString(), 100))); string docElementName = doc.DocumentElement.Name; var parsedDocElementName = docElementName.Split('.'); var requestType = parsedDocElementName[0]; var requestAction = parsedDocElementName[1]; var requestMark = parsedDocElementName[2]; if (requestType == @"Report") { reportRequest.RequestType = RequestTypes.RequestTypeEnum.Report; reportRequest = ReportParse(reportRequest.RequestType, requestAction, doc); } else { reportRequest.RequestType = RequestTypes.RequestTypeEnum.None; } } catch (Exception ex) { Utilities.WriteLog(String.Format(ex.Message + " " + ex.StackTrace)); reportRequest.XMLReturnCode = -1; reportRequest.XMLReturnMessage = ex.Message; } return reportRequest; }
private ReportRequest ReportParse(RequestTypes.RequestTypeEnum requestType, string requestAction, XmlDocument doc) { ReportRequest reportRequest = new ReportRequest { RequestType = requestType, RequestAction = requestAction, XMLReturnCode = 0, XMLReturnMessage = @"OK" }; try { Guid requestGuid = Guid.Empty; Guid.TryParse(ProcessNode(doc, "RequestID"), out requestGuid); reportRequest.RequestID = requestGuid; reportRequest.BusinessUnitID = ProcessNode(doc, "BusinessUnitID"); reportRequest.ReportParameters = ProcessNode(doc, "ReportParameters"); } catch (Exception ex) { Utilities.WriteLog(String.Format(ex.Message + " " + ex.StackTrace)); reportRequest.ReturnType = ReturnTypes.ReturnTypeEnum.XmlError; reportRequest.XMLReturnCode = -2; reportRequest.XMLReturnMessage = ex.Message; } return reportRequest; }
public ReportRequest Base2ReportRequest(BaseRequest baseRequest) { ReportRequest reportRequest = new ReportRequest(); reportRequest.BusinessUnitID = baseRequest.BusinessUnitID; reportRequest.MessageLogId = baseRequest.MessageLogId; reportRequest.RequestAction = baseRequest.RequestAction; reportRequest.RequestID = baseRequest.RequestID; reportRequest.RequestType = baseRequest.RequestType; reportRequest.ReturnType = baseRequest.ReturnType; reportRequest.ReturnCode = baseRequest.ReturnCode; reportRequest.ReturnMessage = baseRequest.ReturnMessage; reportRequest.WFMReturnCode = baseRequest.WFMReturnCode; reportRequest.WFMReturnMessage = baseRequest.WFMReturnMessage; reportRequest.XMLReturnCode = baseRequest.XMLReturnCode; reportRequest.XMLReturnMessage = baseRequest.XMLReturnMessage; return reportRequest; }
private ReportRequest GenerateReportForXML(ReportRequest reportRequest) { try { var result = entitiesModel.fsp_ReportGenerateByID(reportRequest.ReportID, reportRequest.ReportParameters, 0).FirstOrDefault(); if (result != null) { if (result.ReturnCode == 1) { reportRequest.ReturnType = ReturnTypes.ReturnTypeEnum.NoError; reportRequest.ReportResultXML = result.ReturnMessage; reportRequest.WFMReturnCode = 0; reportRequest.WFMReturnMessage += @"Отчет сформирован: OK;"; } else { reportRequest.ReturnType = ReturnTypes.ReturnTypeEnum.ReportError; reportRequest.ReportResultXML = result.ReturnMessage; reportRequest.WFMReturnCode = result.ReturnCode ?? -1; reportRequest.WFMReturnMessage = result.ReturnMessage; } } else { reportRequest.ReturnType = ReturnTypes.ReturnTypeEnum.ReportError; reportRequest.WFMReturnCode = -2; reportRequest.WFMReturnMessage += String.Format(@"Ошибка в отчете [{0}]! ", reportRequest.RequestAction); } } catch (Exception ex) { reportRequest.ReturnType = ReturnTypes.ReturnTypeEnum.SQLError; reportRequest.WFMReturnCode = -1; reportRequest.WFMReturnMessage += ex.Message; } return reportRequest; }
private ReportRequest GenerateReportADO(ReportRequest reportRequest) { try { string connectionString = entitiesModel.Database.Connection.ConnectionString; var dbPwd = ConfigurationManager.AppSettings["dbPassword"]; SqlConnection sqlConnection = new SqlConnection(connectionString + ";password="******"fsp_ReportGenerateByID", sqlConnection); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("@ID", SqlDbType.UniqueIdentifier, 0, "ID")); command.Parameters[0].Value = reportRequest.ReportID; command.Parameters.Add(new SqlParameter("@ReportParameters", SqlDbType.VarChar, 0, "ReportParameters")); command.Parameters[1].Value = reportRequest.ReportParameters; command.Parameters.Add(new SqlParameter("@Debug", SqlDbType.Int, 0, "Debug")); command.Parameters[2].Value = 0; var reader = command.ExecuteReader(); XElement xmlResult = new XElement("ReportData"); int i = 0; while (reader.Read()) { i++; XElement xmlRow = new XElement("Row", i); for (int j = 0; j < reader.FieldCount; j++) { var fieldName = reader.GetName(j); var fieldValue = reader.GetValue(j).ToString(); xmlRow.Add(new XElement(fieldName, fieldValue)); } xmlResult.Add(xmlRow); } reportRequest.WFMReturnCode = 0; reportRequest.WFMReturnMessage += @"Отчет сформирован: OK;"; reportRequest.ReturnType = ReturnTypes.ReturnTypeEnum.NoError; reportRequest.ReturnMessage = reportRequest.WFMReturnMessage; reportRequest.ReportResultXML = xmlResult.ToString(); } catch (Exception ex) { reportRequest.ReturnType = ReturnTypes.ReturnTypeEnum.SQLError; reportRequest.WFMReturnCode = -1; reportRequest.WFMReturnMessage = ex.Message; } return reportRequest; }
public ReportRequest ProcessReportRequest(ReportRequest reportRequest) { if (AuthenticationResultSuccessful) { if (reportRequest.RequestType == RequestTypes.RequestTypeEnum.Report) { ReportRequest wfmResult = new ReportRequest(); var reportInfo = entitiesModel.fsp_ReportInfoByCode(reportRequest.RequestAction, 0).FirstOrDefault(); if (reportInfo != null) { reportRequest.ReportID = reportInfo.ID; if (reportInfo.IsForXML) { wfmResult = GenerateReportForXML(reportRequest); } else { wfmResult = GenerateReportADO(reportRequest); } } else { wfmResult.ReturnType = ReturnTypes.ReturnTypeEnum.XmlError; wfmResult.WFMReturnCode = -1001; wfmResult.WFMReturnMessage += String.Format(@"RequestAction - операция не определена [{0}]! ", reportRequest.RequestAction); wfmResult.ReturnCode = wfmResult.WFMReturnCode; wfmResult.ReturnMessage = wfmResult.WFMReturnMessage; return wfmResult; } reportRequest.ReturnType = wfmResult.ReturnType; reportRequest.WFMReturnCode = wfmResult.WFMReturnCode; reportRequest.WFMReturnMessage = wfmResult.WFMReturnMessage; reportRequest.ReportResultXML = wfmResult.ReportResultXML; reportRequest.ReturnMessage = reportRequest.WFMReturnMessage; Utilities.WriteLog(String.Format(@"WFM Code {0} WFM Message {1}; ", reportRequest.WFMReturnCode, reportRequest.WFMReturnMessage)); } else { reportRequest.WFMReturnCode = -1; reportRequest.WFMReturnMessage = String.Format(@"Ошибочный тип запроса: {0}", reportRequest.RequestType); reportRequest.ReturnCode = reportRequest.WFMReturnCode; reportRequest.ReturnMessage = reportRequest.WFMReturnMessage; Utilities.WriteLog(String.Format(@"WFM Code {0} WFM Message {1}; ", reportRequest.WFMReturnCode, reportRequest.WFMReturnMessage)); } } return reportRequest; }
public void MessageSend(Guid MessageLogId, ReportRequest reportRequest) { try { var xmlMessage = xmlHelper.OutputXMLMessageGenerate(MessageLogId, reportRequest); entitiesModel.fsp_MessageLog_OutputMessageUpdate(MessageLogId, xmlMessage, 0); Message msg = new TextMessage(emsSession, xmlMessage); msgProducer.Send(destination, msg, completionListener); } catch (Exception ex) { Utilities.WriteExceptionMessageToLog(ex); } }