public static void Main()
Console.WriteLine("Hello World");
var cmModel = new Batch277ResponseMQ()
{PickupPath = "PathToFile", ResponseType = Batch277ResponseMQ.Type.TA1}.Serialize();
Console.WriteLine(cmModel);
var comModel = SerializeResponse(ResponseType.DownloadedFile,new BatchDownloadedFileResponse(){FileName = "PathToFile" });
Console.WriteLine(comModel);
if(comModel.StartsWith(ResponseType.DownloadedFile.ToString()))
var comModelObject = (BatchDownloadedFileResponse)DeserializeResponse(ResponseType.DownloadedFile, comModel);
Console.WriteLine("Deserialized " + comModelObject.FileName );
public class Batch277ResponseMQ
public const string MqMessageHeader = "Batch277ResponseMQ";
public string PickupPath;
public Type ResponseType;
public string Serialize()
return MqMessageHeader + JsonConvert.SerializeObject(this);
public static Batch277ResponseMQ Deserialize(string s)
if (s.Contains(MqMessageHeader))
s = s.Remove(0, MqMessageHeader.Length);
return JsonConvert.DeserializeObject<Batch277ResponseMQ>(s);
private static string SerializeString(ResponseType responseType, object response)
return responseType + JsonConvert.SerializeObject(response);
public static string SerializeResponse(ResponseType responseType, BatchDownloadedFileResponse response)
return SerializeString(responseType, response);
private static object DeserializeResponse(ResponseType responseType, string message)
message = message.Replace(responseType.ToString(), string.Empty);
case ResponseType.DownloadedFile:
return JsonConvert.DeserializeObject<BatchDownloadedFileResponse>(message);
public enum SessionResult
TransmissionSuccessful = 1,
public class BatchAcknowledgement : ResponseBase
public SessionResult SessionResult { get; set; }
public long FileStatusId { get; set; }
public string FileName { get; set; }
public int RouteId { get; set; }
public int FormatId { get; set; }
public DateTime MessageUTCDT { get; set; }
public Submitter Submitter { get; set; }
public long ICN { get; set; }
public class BatchDownloadedFileResponse : ResponseBase
public string FileName { get; set; }
public class ResponseBase : MessageBase
public ResponseType ResponseType { get; set; }
public int CommRouteId { get; set; }
public long SessionId { get; set; }