From ac833ac5ad970cf9c30ec9d545d896a6551a0a0c Mon Sep 17 00:00:00 2001 From: Dimitar Byalkov Date: Thu, 8 Jul 2021 11:20:42 +0300 Subject: [PATCH] Exceptions and temp redir of CW for debug --- .../Controller/RecordController.cs | 14 ++++++++++---- .../BoerseDataConvert/Views/Program.cs | 18 +++++++++++++++++- .../BoerseDataConvert/Views/Reader.cs | 2 +- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/BoerseDataConvert/BoerseDataConvert/Controller/RecordController.cs b/BoerseDataConvert/BoerseDataConvert/Controller/RecordController.cs index 58a382e..2812cb3 100644 --- a/BoerseDataConvert/BoerseDataConvert/Controller/RecordController.cs +++ b/BoerseDataConvert/BoerseDataConvert/Controller/RecordController.cs @@ -54,14 +54,17 @@ namespace BoerseDataConvert string[] line = reader.ReadLine().Split('|').ToArray(); if (line[0] == tag) tagLine = line; } - if (tagLine == null) throw new ArgumentException("Invalid tag!"); + if (tagLine == null) throw new ArgumentException($"WARN: Invalid tag \"{tag}\", {cur_fileName} line {count + 1}"); tagname = tagLine[1]; if (value != "NULL" && tagLine.Length == 3) { string[] valueType = tagLine[2].Split('-').ToArray(); if (valueType.Length == 2) { - if (value.Length > int.Parse(valueType[1])) throw new ArgumentException("Value is too long!"); + if (value.Length > int.Parse(valueType[1])) + { + throw new ArgumentException($"WARN: Too long value \"{tag}\", \"{value}\", max allowed \"{valueType[1]}\", {cur_fileName} line {count + 1}"); + } } else { @@ -71,7 +74,7 @@ namespace BoerseDataConvert } catch (FormatException) { - throw new ArgumentException("Value does not represent a number in a valid format!"); + throw new ArgumentException($"WARN: Value is not in a valid format for number \"{tag}\", \"{value}\", {cur_fileName} line {count + 1}"); } } @@ -89,7 +92,10 @@ namespace BoerseDataConvert break; } } - if (!countain) throw new ArgumentException("Value is not in value range!"); + if (!countain) + { + throw new ArgumentException($"WARN: Value not in range \"{tag}\", \"{value}\", {cur_fileName} line {count + 1}"); + } } } return tagname; diff --git a/BoerseDataConvert/BoerseDataConvert/Views/Program.cs b/BoerseDataConvert/BoerseDataConvert/Views/Program.cs index d4733b6..a351e24 100644 --- a/BoerseDataConvert/BoerseDataConvert/Views/Program.cs +++ b/BoerseDataConvert/BoerseDataConvert/Views/Program.cs @@ -16,6 +16,22 @@ namespace BoerseDataConvert // -o directory or --output direcory // -h - help + FileStream ostrm; + StreamWriter writer1; + TextWriter oldOut = Console.Out; + try + { + ostrm = new FileStream("./log.txt", FileMode.OpenOrCreate, FileAccess.Write); + writer1 = new StreamWriter(ostrm); + } + catch (Exception e) + { + Console.WriteLine("Cannot open Redirect.txt for writing"); + Console.WriteLine(e.Message); + return; + } + Console.SetOut(writer1); + // input handling string zipFile = "", inputDir = "", outputDir = ""; Console.WriteLine(); @@ -37,7 +53,7 @@ namespace BoerseDataConvert return; } zipFile = @"D:\Code\ИТ Кариера\Стаж\задача\testdata.zip"; - inputDir = @"D:\Code\ИТ Кариера\Стаж\задача\TestData"; + inputDir = @"D:\Code\ИТ Кариера\Стаж\задача\inputdir"; outputDir = @"D:\Code\ИТ Кариера\Стаж\задача\outputdir"; if (zipFile == "" || inputDir == "" || outputDir == "") { diff --git a/BoerseDataConvert/BoerseDataConvert/Views/Reader.cs b/BoerseDataConvert/BoerseDataConvert/Views/Reader.cs index ee97a50..22f6937 100644 --- a/BoerseDataConvert/BoerseDataConvert/Views/Reader.cs +++ b/BoerseDataConvert/BoerseDataConvert/Views/Reader.cs @@ -39,7 +39,7 @@ namespace BoerseDataConvert foreach (var item in sr) { string[] d = item.Split('#').ToArray(); - a.Add(d[0], d[1]); + a.Add(d[0], String.Join('#', d.Skip(1))); } Record record = new Record(); record.TagsValues = a;