public bool Load(string toLoadDataCheckerFile)
        {
            if (!IsValidAndExistingFile(toLoadDataCheckerFile))
            {
                return(false);
            }

            var readerResult = new XmlDataCheckItemsReader().Read(toLoadDataCheckerFile, DataCheckerContext);

            if (!readerResult.HasErrorMessage())
            {
                CurrentXDocument = readerResult.DataChecksDocument;

                try
                {
                    RootViewModel =
                        DataCheckItemViewModel.Create(readerResult.DataCheckItems, System.IO.Path.GetFileName(toLoadDataCheckerFile));
                }
                catch (ArgumentOutOfRangeException e)
                {
                    AppendSystemMessage($"Problem beim lesen der Datei {toLoadDataCheckerFile}:{Environment.NewLine}");
                    AppendSystemMessage($"{e.Message}{Environment.NewLine}");
                    return(false);
                }
                catch (Exception ex)
                {
                    AppendSystemMessage($"Problem aufgetretten:{Environment.NewLine}");
                    AppendSystemMessage($"{ex.Message}{Environment.NewLine}");
                }
            }
            return(!readerResult.HasErrorMessage());
        }
예제 #2
0
        public static DataCheckReadResult Read()
        {
            var xmlDataCheckItemsReader = new XmlDataCheckItemsReader();
            var testFileName            = "GEOBOX.OSC.IM.DataCheckerTool.Testing.IO.GB_WW_Data_Checker.xml";

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(testFileName))
            {
                return(xmlDataCheckItemsReader.Read(stream, new DataCheckerContext(_ => { })));
            }
        }
        public void Write_WithTestData_ReturnsExpectedResult()
        {
            var result = XmlTestFileReader.Read();
            var writer = new XmlDataCheckItemsWriter();

            using (var testMemoryStream = new MemoryStream())
            {
                writer.Write(result.DataCheckItems, result.DataChecksDocument, testMemoryStream, new DataCheckerContext(/*logMessageAction*/ null));
                var reader = new XmlDataCheckItemsReader();
                testMemoryStream.Position = 0; //reset position to start!
                var readerResultAfterWrite = reader.Read(testMemoryStream, new DataCheckerContext(/*logMessageAction*/ null));
                //we just assume that the count of DataCheckItems is the same
                Assert.AreEqual(result.DataCheckItems.Count(), readerResultAfterWrite.DataCheckItems.Count());
                //Debug.WriteLine(Encoding.UTF8.GetString(testMemoryStream.ToArray()));
            }
        }