/// <summary> /// Ruft die Meldedatei mit einem bestimmten Dateinamen aus dem Deuev-Ordner ab /// </summary> /// <param name="input">Die Meldedatei</param> /// <param name="name">Name in der Meldungen.xml</param> /// <returns>Meldedatei als DeuevMessageData-Objekt</returns> private BwnaMessageData GetMessageFromString(string input, string name) { var output = new StringWriter(); var writer = StreamFactory.CreateWriter(name, output); var reader = StreamFactory.CreateReader(name, new StringReader(input)); var deuevMessage = new BwnaMessageData(); try { var streamObject = reader.Read(); do { var vosz = Assert.IsType<VOSZ>(streamObject); deuevMessage.VOSZ.Add(vosz); writer.Write(vosz); streamObject = reader.Read(); } while (reader.RecordName == "VOSZ" || reader.RecordName == "VOSZ-v01"); var dsko = Assert.IsType<DSKO02>(streamObject); deuevMessage.DSKO = dsko; writer.Write(dsko); streamObject = reader.Read(); while (reader.RecordName == "DSBE" || reader.RecordName == "DSBE-v01") { var record = Assert.IsType<DSBE01>(streamObject); deuevMessage.DSBEv01.Add(record); writer.Write(record); streamObject = reader.Read(); } do { var ncsz = Assert.IsType<NCSZ>(streamObject); writer.Write(streamObject); deuevMessage.NCSZ.Add(ncsz); streamObject = reader.Read(); } while (reader.RecordName != null && (reader.RecordName == "NCSZ" || reader.RecordName == "NCSZ-v01")); Assert.Null(reader.RecordName); Assert.Equal(deuevMessage.VOSZ.Count, deuevMessage.NCSZ.Count); writer.Close(); string output2 = output.ToString(); Assert.Equal(input, output2); return deuevMessage; } finally { reader.Close(); } }
/// <summary> /// Ruft die Meldedatei mit einem bestimmten Dateinamen aus dem Deuev-Ordner ab /// </summary> /// <param name="input">Die Meldedatei</param> /// <param name="name">Name in der Meldungen.xml</param> /// <returns>Meldedatei als DeuevMessageData-Objekt</returns> private BwnaMessageData GetMessageFromString(string input, string name) { var output = new StringWriter(); var writer = StreamFactory.CreateWriter(name, output); var reader = StreamFactory.CreateReader(name, new StringReader(input)); var deuevMessage = new BwnaMessageData(); try { var streamObject = reader.Read(); do { var vosz = Assert.IsType <VOSZ>(streamObject); deuevMessage.VOSZ.Add(vosz); writer.Write(vosz); streamObject = reader.Read(); }while (reader.RecordName == "VOSZ" || reader.RecordName == "VOSZ-v01"); var dsko = Assert.IsType <DSKO02>(streamObject); deuevMessage.DSKO = dsko; writer.Write(dsko); streamObject = reader.Read(); while (reader.RecordName == "DSBE" || reader.RecordName == "DSBE-v01") { var record = Assert.IsType <DSBE01>(streamObject); deuevMessage.DSBEv01.Add(record); writer.Write(record); streamObject = reader.Read(); } do { var ncsz = Assert.IsType <NCSZ>(streamObject); writer.Write(streamObject); deuevMessage.NCSZ.Add(ncsz); streamObject = reader.Read(); }while (reader.RecordName != null && (reader.RecordName == "NCSZ" || reader.RecordName == "NCSZ-v01")); Assert.Null(reader.RecordName); Assert.Equal(deuevMessage.VOSZ.Count, deuevMessage.NCSZ.Count); writer.Close(); string output2 = output.ToString(); Assert.Equal(input, output2); return(deuevMessage); } finally { reader.Close(); } }
/// <summary> /// Erstellt die Meldedatei anhand von <paramref name="data"/> neu. /// </summary> /// <param name="data">Die Daten die zur Erstellung der Meldedatei benutzt werden sollen</param> /// <param name="streamName">Der Name des Streams der für die Erstellung der Meldedatei benutzt werden soll</param> /// <returns>Die Meldedatei</returns> private string GetStringFromMessage(BwnaMessageData data, string streamName) { var output = new StringWriter(); var writer = StreamFactory.CreateWriter(streamName, output); foreach (var record in data.VOSZ) writer.Write(record); writer.Write(data.DSKO); foreach (var record in data.BW02) writer.Write(record); foreach (var record in data.NCSZ) writer.Write(record); writer.Close(); return output.ToString(); }
/// <summary> /// Ruft die Meldedatei mit einem bestimmten Dateinamen aus dem Deuev-Ordner ab /// </summary> /// <param name="input">Die Meldedatei</param> /// <param name="name">Name in der Meldungen.xml</param> /// <returns>Meldedatei als DeuevMessageData-Objekt</returns> private BwnaMessageData GetMessageFromString(string input, string name) { var reader = StreamFactory.CreateReader(name, new StringReader(input)); var deuevMessage = new BwnaMessageData(); try { var streamObject = reader.Read(); do { var vosz = Assert.IsType<VOSZ06>(streamObject); deuevMessage.VOSZ.Add(vosz); streamObject = reader.Read(); } while (reader.RecordName == "VOSZ" || reader.RecordName == "VOSZ-BNA-v06"); var dsko = Assert.IsType<DSKO02>(streamObject); deuevMessage.DSKO = dsko; streamObject = reader.Read(); while (reader.RecordName == "BW02" || reader.RecordName == "BW02-v11") { var record = Assert.IsType<BW0211>(streamObject); deuevMessage.BW02.Add(record); streamObject = reader.Read(); } do { var ncsz = Assert.IsType<NCSZ06>(streamObject); deuevMessage.NCSZ.Add(ncsz); streamObject = reader.Read(); } while (reader.RecordName != null && (reader.RecordName == "NCSZ" || reader.RecordName == "NCSZ-BNA-v06")); Assert.Null(reader.RecordName); Assert.Equal(deuevMessage.VOSZ.Count, deuevMessage.NCSZ.Count); return deuevMessage; } finally { reader.Close(); } }
/// <summary> /// Ruft die Meldedatei mit einem bestimmten Dateinamen aus dem Deuev-Ordner ab /// </summary> /// <param name="input">Die Meldedatei</param> /// <param name="name">Name in der Meldungen.xml</param> /// <returns>Meldedatei als DeuevMessageData-Objekt</returns> private BwnaMessageData GetMessageFromString(string input, string name) { var reader = StreamFactory.CreateReader(name, new StringReader(input)); var deuevMessage = new BwnaMessageData(); try { var streamObject = reader.Read(); do { var vosz = Assert.IsType <VOSZ06>(streamObject); deuevMessage.VOSZ.Add(vosz); streamObject = reader.Read(); }while (reader.RecordName == "VOSZ" || reader.RecordName == "VOSZ-BNA-v06"); var dsko = Assert.IsType <DSKO02>(streamObject); deuevMessage.DSKO = dsko; streamObject = reader.Read(); while (reader.RecordName == "BW02" || reader.RecordName == "BW02-v11") { var record = Assert.IsType <BW0211>(streamObject); deuevMessage.BW02.Add(record); streamObject = reader.Read(); } do { var ncsz = Assert.IsType <NCSZ06>(streamObject); deuevMessage.NCSZ.Add(ncsz); streamObject = reader.Read(); }while (reader.RecordName != null && (reader.RecordName == "NCSZ" || reader.RecordName == "NCSZ-BNA-v06")); Assert.Null(reader.RecordName); Assert.Equal(deuevMessage.VOSZ.Count, deuevMessage.NCSZ.Count); return(deuevMessage); } finally { reader.Close(); } }
/// <summary> /// Erstellt die Meldedatei anhand von <paramref name="data"/> neu. /// </summary> /// <param name="data">Die Daten die zur Erstellung der Meldedatei benutzt werden sollen</param> /// <param name="streamName">Der Name des Streams der für die Erstellung der Meldedatei benutzt werden soll</param> /// <returns>Die Meldedatei</returns> private string GetStringFromMessage(BwnaMessageData data, string streamName) { var output = new StringWriter(); var writer = StreamFactory.CreateWriter(streamName, output); foreach (var record in data.VOSZ) { writer.Write(record); } writer.Write(data.DSKO); foreach (var record in data.BW02) { writer.Write(record); } foreach (var record in data.NCSZ) { writer.Write(record); } writer.Close(); return(output.ToString()); }
/// <summary> /// Ruft die Meldedatei mit einem bestimmten Dateinamen aus dem Deuev-Ordner ab /// </summary> /// <param name="fileName"> /// Dateiname der Meldedatei /// </param> /// <param name="name"> /// Name in der Meldungen.xml /// </param> /// <returns> /// Meldedatei als DeuevMessageData-Objekt /// </returns> private BwnaMessageData GetMessageFromFile(string fileName, string name) { var input = LoadData(fileName).ReadToEnd(); var output = new StringWriter(); var writer = StreamFactory.CreateWriter(name, output); var reader = StreamFactory.CreateReader(name, new StringReader(input)); var deuevMessage = new BwnaMessageData(); try { var streamObject = reader.Read(); do { var vosz = Assert.IsType <VOSZ>(streamObject); deuevMessage.VOSZ.Add(vosz); writer.Write(vosz); streamObject = reader.Read(); }while (reader.RecordName == "VOSZ" || reader.RecordName == "VOSZ-v01"); var dsko = Assert.IsType <DSKO02>(streamObject); deuevMessage.DSKO = dsko; writer.Write(dsko); streamObject = reader.Read(); while (reader.RecordName == "DSER" || reader.RecordName == "DSER-v02" || reader.RecordName == "DSER-v03") { switch (name) { case "dser-agger-v02": { var record = Assert.IsType <DSER02>(streamObject); deuevMessage.DSER02.Add(record); writer.Write(record); } break; case "dser-agger-v03": { var record = Assert.IsType <DSER03>(streamObject); deuevMessage.DSER03.Add(record); writer.Write(record); } break; case "super-message": switch (reader.RecordName) { case "DSER-v02": { var record = Assert.IsType <DSER02>(streamObject); deuevMessage.DSER02.Add(record); writer.Write(record); } break; case "DSER-v03": { var record = Assert.IsType <DSER03>(streamObject); deuevMessage.DSER03.Add(record); writer.Write(record); } break; default: throw new InvalidOperationException(string.Format("Unsupported record {0}", reader.RecordName)); } break; default: throw new InvalidOperationException(string.Format("Unsupported stream {0}", name)); } streamObject = reader.Read(); } do { var ncsz = Assert.IsType <NCSZ>(streamObject); writer.Write(streamObject); deuevMessage.NCSZ.Add(ncsz); streamObject = reader.Read(); }while (reader.RecordName != null && (reader.RecordName == "NCSZ" || reader.RecordName == "NCSZ-v01")); Assert.Null(reader.RecordName); Assert.Equal(deuevMessage.VOSZ.Count, deuevMessage.NCSZ.Count); writer.Close(); string output2 = output.ToString(); Assert.Equal(input, output2); return(deuevMessage); } finally { reader.Close(); } }
/// <summary> /// Ruft die Meldedatei mit einem bestimmten Dateinamen aus dem Deuev-Ordner ab /// </summary> /// <param name="fileName"> /// Dateiname der Meldedatei /// </param> /// <param name="name"> /// Name in der Meldungen.xml /// </param> /// <returns> /// Meldedatei als DeuevMessageData-Objekt /// </returns> private BwnaMessageData GetMessageFromFile(string fileName, string name) { var input = LoadData(fileName).ReadToEnd(); var output = new StringWriter(); var writer = StreamFactory.CreateWriter(name, output); var reader = StreamFactory.CreateReader(name, new StringReader(input)); var deuevMessage = new BwnaMessageData(); try { var streamObject = reader.Read(); do { var vosz = Assert.IsType<VOSZ>(streamObject); deuevMessage.VOSZ.Add(vosz); writer.Write(vosz); streamObject = reader.Read(); } while (reader.RecordName == "VOSZ" || reader.RecordName == "VOSZ-v01"); var dsko = Assert.IsType<DSKO02>(streamObject); deuevMessage.DSKO = dsko; writer.Write(dsko); streamObject = reader.Read(); while (reader.RecordName == "DSER" || reader.RecordName == "DSER-v02" || reader.RecordName == "DSER-v03") { switch (name) { case "dser-agger-v02": { var record = Assert.IsType<DSER02>(streamObject); deuevMessage.DSER02.Add(record); writer.Write(record); } break; case "dser-agger-v03": { var record = Assert.IsType<DSER03>(streamObject); deuevMessage.DSER03.Add(record); writer.Write(record); } break; case "super-message": switch (reader.RecordName) { case "DSER-v02": { var record = Assert.IsType<DSER02>(streamObject); deuevMessage.DSER02.Add(record); writer.Write(record); } break; case "DSER-v03": { var record = Assert.IsType<DSER03>(streamObject); deuevMessage.DSER03.Add(record); writer.Write(record); } break; default: throw new InvalidOperationException(string.Format("Unsupported record {0}", reader.RecordName)); } break; default: throw new InvalidOperationException(string.Format("Unsupported stream {0}", name)); } streamObject = reader.Read(); } do { var ncsz = Assert.IsType<NCSZ>(streamObject); writer.Write(streamObject); deuevMessage.NCSZ.Add(ncsz); streamObject = reader.Read(); } while (reader.RecordName != null && (reader.RecordName == "NCSZ" || reader.RecordName == "NCSZ-v01")); Assert.Null(reader.RecordName); Assert.Equal(deuevMessage.VOSZ.Count, deuevMessage.NCSZ.Count); writer.Close(); string output2 = output.ToString(); Assert.Equal(input, output2); return deuevMessage; } finally { reader.Close(); } }