/// <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();
            }
        }
Ejemplo n.º 5
0
        /// <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();
            }
        }
Ejemplo n.º 6
0
        /// <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();
            }
        }