static void TestReadListResponse() { IConfigurationRepository configurationRepository = new ConfigFileConfigurationRepository(); loggingService = new Log4NetLoggingService(configurationRepository, new ThreadContextService()); LogProviderContext.Current = loggingService; string filename = @"C:\Temp\LocalDataRequestMessage_2014_10_16_10_33_50.xml"; XmlDocument listResponse = new XmlDocument(); listResponse.Load(filename); IMessageReader reader = new DefaultMessageReader(loggingService, configurationRepository, listResponse.ToXDocument()); reader.ReadMessage(); string[] results = reader.GetMessageResults <string[]>(); string qualifier = reader.GetQualifier(); string function = reader.GetFunction(); DataTable listResults = reader.GetMessageResults <DataTable>(); GovTalkMessage message = reader.Message(); Console.WriteLine("Message from {0}", message.Header.MessageDetails.ResponseEndPoint.Value.ToString()); }
public static void TestDecompressMessage(XmlDocument compressedXmlDocument) { string contents = CommonUtilityHelper.DecompressData(compressedXmlDocument.XmlToBytes()); XmlDocument decompressedDocument = new XmlDocument(); decompressedDocument.LoadXml(contents); DefaultMessageReader reader = new DefaultMessageReader(loggingService, configurationRepository, decompressedDocument.ToXDocument()); string[] results = reader.GetMessageResults <string[]>(); Console.WriteLine(reader.GetQualifier()); }
static void TestReadListResponse() { IConfigurationRepository configurationRepository = new ConfigFileConfigurationRepository(); loggingService = new Log4NetLoggingService(configurationRepository, new ThreadContextService()); LogProviderContext.Current = loggingService; string filename = @"C:\Temp\LocalDataRequestMessage_2014_10_16_10_33_50.xml"; XmlDocument listResponse = new XmlDocument(); listResponse.Load(filename); IMessageReader reader = new DefaultMessageReader(loggingService, configurationRepository, listResponse.ToXDocument()); reader.ReadMessage(); string[] results = reader.GetMessageResults<string[]>(); string qualifier = reader.GetQualifier(); string function = reader.GetFunction(); DataTable listResults = reader.GetMessageResults<DataTable>(); GovTalkMessage message = reader.Message(); Console.WriteLine("Message from {0}", message.Header.MessageDetails.ResponseEndPoint.Value.ToString()); }
/// <summary> /// Demonstrate using the message reader strategies to get results from a message reply /// </summary> /// <param name="loggingService"></param> /// <param name="messageToRead"></param> static void DemonstrateReadMessage(ILoggingService loggingService, XmlDocument messageToRead) { // Set up a message reading strategy IMessageReader messageReader = new DefaultMessageReader(loggingService, configurationRepository, messageToRead.ToXDocument()); messageReader.ReadMessage(); // We don't know what we've got back from the Gateway, but all replies are GovTalkMessages if(messageReader.HasErrors()) { //There are errors in the results file so we can deal with them // Get a DataTable of the results and have a look at that DataTable errorTable = messageReader.GetMessageResults<DataTable>(); // Or set up an error return strategy and do something with that IErrorReturnCalculator errorCalculator = new DefaultErrorReturnCalculator(); GovTalkMessageGovTalkDetailsError error = messageReader.GetMessageResults<GovTalkMessageGovTalkDetailsError>(); Console.WriteLine(errorCalculator.CalculateErrorReturn(error)); if(error.Number == "3001") { ErrorResponse errResponse = messageReader.GetMessageResults<ErrorResponse>(); } } else { // It's either an acknowledgement so we need to get the poll interval and URL, or a response. string[] results = messageReader.GetMessageResults<string[]>(); foreach(var result in results) { Console.WriteLine(result); } if(messageReader.GetQualifier() == "response") { string body = messageReader.GetBodyType(); if(body != null) { DataTable responseTable = messageReader.GetMessageResults<DataTable>(); LocalHelp.ConsolePrintDataTable(responseTable); } else { Console.WriteLine("No body content"); } } } GovTalkMessageFileName ReplyNamer = new GovTalkMessageFileName.FileNameBuilder() .AddLogger(loggingService) .AddConfigurationRepository(configurationRepository) .AddMessageIntention("ReplyMessage") .AddCorrelationId(messageReader.GetCorrelationId()) .AddFilePath(@"C:\Temp\") .BuildFileName(); string replyFileName = ReplyNamer.ToString(); messageToRead.Save(replyFileName); }
public static void TestDecompressMessage(XmlDocument compressedXmlDocument) { string contents = CommonUtilityHelper.DecompressData(compressedXmlDocument.XmlToBytes()); XmlDocument decompressedDocument = new XmlDocument(); decompressedDocument.LoadXml(contents); DefaultMessageReader reader = new DefaultMessageReader(loggingService, configurationRepository, decompressedDocument.ToXDocument()); string[] results = reader.GetMessageResults<string[]>(); Console.WriteLine(reader.GetQualifier()); }
/// <summary> /// Demonstrate using the message reader strategies to get results from a message reply /// </summary> /// <param name="loggingService"></param> /// <param name="messageToRead"></param> static void DemonstrateReadMessage(ILoggingService loggingService, XmlDocument messageToRead) { // Set up a message reading strategy IMessageReader messageReader = new DefaultMessageReader(loggingService, configurationRepository, messageToRead.ToXDocument()); messageReader.ReadMessage(); // We don't know what we've got back from the Gateway, but all replies are GovTalkMessages if (messageReader.HasErrors()) { //There are errors in the results file so we can deal with them // Get a DataTable of the results and have a look at that DataTable errorTable = messageReader.GetMessageResults <DataTable>(); // Or set up an error return strategy and do something with that IErrorReturnCalculator errorCalculator = new DefaultErrorReturnCalculator(); GovTalkMessageGovTalkDetailsError error = messageReader.GetMessageResults <GovTalkMessageGovTalkDetailsError>(); Console.WriteLine(errorCalculator.CalculateErrorReturn(error)); if (error.Number == "3001") { ErrorResponse errResponse = messageReader.GetMessageResults <ErrorResponse>(); } } else { // It's either an acknowledgement so we need to get the poll interval and URL, or a response. string[] results = messageReader.GetMessageResults <string[]>(); foreach (var result in results) { Console.WriteLine(result); } if (messageReader.GetQualifier() == "response") { string body = messageReader.GetBodyType(); if (body != null) { DataTable responseTable = messageReader.GetMessageResults <DataTable>(); LocalHelp.ConsolePrintDataTable(responseTable); } else { Console.WriteLine("No body content"); } } } GovTalkMessageFileName ReplyNamer = new GovTalkMessageFileName.FileNameBuilder() .AddLogger(loggingService) .AddConfigurationRepository(configurationRepository) .AddMessageIntention("ReplyMessage") .AddCorrelationId(messageReader.GetCorrelationId()) .AddFilePath(@"C:\Temp\") .BuildFileName(); string replyFileName = ReplyNamer.ToString(); messageToRead.Save(replyFileName); }