Add invalid tag statistic
This commit is contained in:
@@ -34,6 +34,8 @@ namespace BoerseDataConvert
|
|||||||
writer.WriteEndElement();
|
writer.WriteEndElement();
|
||||||
writer.WriteEndDocument();
|
writer.WriteEndDocument();
|
||||||
writer.Close();
|
writer.Close();
|
||||||
|
WarningStat.PrintWarnigs();
|
||||||
|
WarningStat.Refresh(fileName);
|
||||||
cur_fileName = fileName.Split('.').First();
|
cur_fileName = fileName.Split('.').First();
|
||||||
count = 1;
|
count = 1;
|
||||||
Console.WriteLine(cur_fileName + " start");
|
Console.WriteLine(cur_fileName + " start");
|
||||||
@@ -50,17 +52,11 @@ namespace BoerseDataConvert
|
|||||||
writer.WriteAttributeString("id", null, count.ToString());
|
writer.WriteAttributeString("id", null, count.ToString());
|
||||||
foreach (var tagValue in record)
|
foreach (var tagValue in record)
|
||||||
{
|
{
|
||||||
try
|
|
||||||
{
|
|
||||||
string tag = CheckTagValue(tagValue.Key, tagValue.Value);
|
string tag = CheckTagValue(tagValue.Key, tagValue.Value);
|
||||||
writer.WriteStartElement(tag);
|
writer.WriteStartElement(tag);
|
||||||
writer.WriteValue(tagValue.Value);
|
writer.WriteValue(tagValue.Value);
|
||||||
writer.WriteEndElement();
|
writer.WriteEndElement();
|
||||||
}
|
|
||||||
catch (ArgumentException e)
|
|
||||||
{
|
|
||||||
Console.WriteLine(e.Message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
writer.WriteEndElement();
|
writer.WriteEndElement();
|
||||||
count++;
|
count++;
|
||||||
@@ -70,10 +66,11 @@ namespace BoerseDataConvert
|
|||||||
writer.WriteEndElement();
|
writer.WriteEndElement();
|
||||||
writer.WriteEndDocument();
|
writer.WriteEndDocument();
|
||||||
writer.Close();
|
writer.Close();
|
||||||
|
WarningStat.PrintWarnigs();
|
||||||
}
|
}
|
||||||
private string CheckTagValue(int tag, string value)
|
private string CheckTagValue(int tag, string value)
|
||||||
{
|
{
|
||||||
if(tagsTable.CheckInvalidTag(tag)) throw new ArgumentException($"WARN: Invalid tag \"{tag}\", {cur_fileName} line {count + 1}");
|
if (tagsTable.CheckInvalidTag(tag)) WarningStat.Add(tag);
|
||||||
string tagname = tagsTable.GetTagName(tag);
|
string tagname = tagsTable.GetTagName(tag);
|
||||||
if (value == "") return tagname;
|
if (value == "") return tagname;
|
||||||
if (value != "NULL" && !tagsTable.HaveValueRanges(tag)) //Checks if the tag have not a value ranges
|
if (value != "NULL" && !tagsTable.HaveValueRanges(tag)) //Checks if the tag have not a value ranges
|
||||||
@@ -82,7 +79,7 @@ namespace BoerseDataConvert
|
|||||||
{
|
{
|
||||||
if (tagsTable.CheckStringLengthToBig(tag, value.Length))
|
if (tagsTable.CheckStringLengthToBig(tag, value.Length))
|
||||||
{
|
{
|
||||||
throw new ArgumentException($"WARN: Too long value \"{tag}\", \"{value}\", max allowed \"{tagsTable.GetTagName(tag)}\", {cur_fileName} line {count + 1}");
|
Console.WriteLine($"WARN: Too long value \"{tag}\", \"{value}\", max allowed \"{tagsTable.GetTagName(tag)}\", {cur_fileName} line {count + 1}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else//Checks if value type is decimal
|
else//Checks if value type is decimal
|
||||||
@@ -94,7 +91,7 @@ namespace BoerseDataConvert
|
|||||||
}
|
}
|
||||||
catch (FormatException)
|
catch (FormatException)
|
||||||
{
|
{
|
||||||
throw new ArgumentException($"WARN: Value is not in a valid format for number \"{tag}\", \"{value}\", {cur_fileName} line {count + 1}");
|
Console.WriteLine($"WARN: Value is not in a valid format for number \"{tag}\", \"{value}\", {cur_fileName} line {count + 1}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -102,7 +99,7 @@ namespace BoerseDataConvert
|
|||||||
{
|
{
|
||||||
if (!tagsTable.CheckValidValue(tag, value))
|
if (!tagsTable.CheckValidValue(tag, value))
|
||||||
{
|
{
|
||||||
throw new ArgumentException($"WARN: Value not in range \"{tag}\", \"{value}\", {cur_fileName} line {count + 1}");
|
Console.WriteLine($"WARN: Value not in range \"{tag}\", \"{value}\", {cur_fileName} line {count + 1}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return tagname;
|
return tagname;
|
||||||
|
|||||||
@@ -4,32 +4,16 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace BoerseDataConvert.Model
|
namespace BoerseDataConvert
|
||||||
{
|
{
|
||||||
public static class WarningStat
|
public static class WarningStat
|
||||||
{
|
{
|
||||||
private class Warning
|
private static Dictionary<int, int> tableWarnings = tableWarnings = new Dictionary<int, int>();
|
||||||
{
|
|
||||||
string type;
|
|
||||||
int count;
|
|
||||||
|
|
||||||
public Warning(string type)
|
|
||||||
{
|
|
||||||
this.type = type;
|
|
||||||
count = 1;
|
|
||||||
}
|
|
||||||
public void Add()
|
|
||||||
{
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Dictionary<int, Warning> tableWarnings = tableWarnings = new Dictionary<int, Warning>();
|
|
||||||
private static string curFile;
|
private static string curFile;
|
||||||
public static void Refresh(string fileName)
|
public static void Refresh(string fileName)
|
||||||
{
|
{
|
||||||
curFile = fileName;
|
curFile = fileName;
|
||||||
tableWarnings = new Dictionary<int,Warning>();
|
tableWarnings = new Dictionary<int, int>();
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
type "inv" - Ivalid tag
|
type "inv" - Ivalid tag
|
||||||
@@ -37,17 +21,34 @@ namespace BoerseDataConvert.Model
|
|||||||
type "notnum" - is not in a valid format for number
|
type "notnum" - is not in a valid format for number
|
||||||
type "range" - Value not in range
|
type "range" - Value not in range
|
||||||
*/
|
*/
|
||||||
public static void Add(int tag,string type)//
|
public static void Add(int tag)//
|
||||||
{
|
{
|
||||||
if (tableWarnings.ContainsKey(tag))
|
if (tableWarnings.ContainsKey(tag))
|
||||||
{
|
{
|
||||||
tableWarnings[tag].Add();
|
tableWarnings[tag]++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Warning warning = new Warning(type);
|
tableWarnings.Add(tag, 1);
|
||||||
tableWarnings.Add(tag, warning);
|
}
|
||||||
|
}
|
||||||
|
public static void PrintWarnigs()
|
||||||
|
{
|
||||||
|
if (tableWarnings.Count == 0)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"There is no warnings in file {curFile}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Warnings in file {curFile}");
|
||||||
|
foreach (var warning in tableWarnings)
|
||||||
|
{
|
||||||
|
int tag = warning.Key;
|
||||||
|
int count = warning.Value;
|
||||||
|
Console.WriteLine($"Invalid tag \"{tag}\": {count} times.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user