130 lines
4.1 KiB
C#
130 lines
4.1 KiB
C#
// See https://aka.ms/new-console-template for more information
|
|
|
|
using System.Diagnostics;
|
|
using System.Text.RegularExpressions;
|
|
|
|
public static class Helper
|
|
{
|
|
public enum Porto
|
|
{
|
|
FAILED,
|
|
BRIEF085,
|
|
BRIEF100,
|
|
BRIEF160,
|
|
BRIEF275,
|
|
PRIO210,
|
|
PRIO270
|
|
}
|
|
internal static Kunde ConvertToKunde(string text)
|
|
{
|
|
string[] datas = text.Split("\r\n");
|
|
string name = datas[0];
|
|
string adresseUNDHausnummer = datas[datas.Length-3];
|
|
string plzUNDOrt = datas[datas.Length-2];
|
|
string land = datas[datas.Length-1];
|
|
|
|
datas = plzUNDOrt.Split(" ");
|
|
string plz = datas[0];
|
|
string ort = datas[1];
|
|
|
|
datas = adresseUNDHausnummer.Split(" ");
|
|
string strasse = "";
|
|
string hausnummer = "";
|
|
//Trace.WriteLine(datas.Length);
|
|
if (datas.Length <= 1)
|
|
{
|
|
Regex myRegex = new Regex("[0-9]*$");
|
|
var matched = myRegex.Match(adresseUNDHausnummer);
|
|
strasse = adresseUNDHausnummer.Substring(0, matched.Index);
|
|
hausnummer = adresseUNDHausnummer.Substring(matched.Index);
|
|
}
|
|
else
|
|
{
|
|
for (int i = 0; i < datas.Length - 1; i++)
|
|
{
|
|
strasse += datas[i] + " ";
|
|
}
|
|
strasse = strasse.Trim();
|
|
hausnummer = datas[datas.Length - 1];
|
|
}
|
|
return new Kunde(name, strasse, hausnummer, plz, ort, land);
|
|
}
|
|
|
|
public static List<Artikel> ParseArtikeln(string text)
|
|
{
|
|
List<Artikel> result = new List<Artikel>();
|
|
string[] datas = text.Split("\r\n");
|
|
|
|
for(int i = 0; i < datas.Length; i++)
|
|
{
|
|
Artikel temp = new Artikel();
|
|
int internalCounter = 0;
|
|
bool SourceFounded = false;
|
|
for(int j = i; j < datas.Length; j++)
|
|
{
|
|
var nFound = datas[j].IndexOf("€");
|
|
|
|
if(nFound == -1)
|
|
{
|
|
if (temp.Amount == 0)
|
|
{
|
|
var xFound = datas[j].IndexOf("x");
|
|
if (xFound >= 1 && xFound <= 2)
|
|
{
|
|
temp.Amount = Convert.ToInt32(datas[j].Substring(0, xFound));
|
|
temp.GERName = datas[j].Substring(xFound + 1).Trim();
|
|
}
|
|
}
|
|
if(internalCounter == 1)
|
|
{
|
|
temp.ENGName = datas[j];
|
|
}
|
|
if(internalCounter == 2)
|
|
{
|
|
if (datas[j].IndexOf("#") > -1)
|
|
{
|
|
temp.CardNumber = datas[j];
|
|
SourceFounded = false;
|
|
}
|
|
else
|
|
{
|
|
temp.Source = datas[j];
|
|
SourceFounded = true;
|
|
}
|
|
}
|
|
if(internalCounter == 3)
|
|
{
|
|
if(SourceFounded)
|
|
{
|
|
temp.Raritaet = datas[j];
|
|
}
|
|
else
|
|
{
|
|
temp.Source = datas[j];
|
|
}
|
|
}
|
|
//Trace.WriteLine(j + " " + datas[j]);
|
|
}
|
|
else
|
|
{
|
|
temp.Preis = datas[j].Split(' ')[0];
|
|
result.Add(temp);
|
|
i = j;
|
|
break;
|
|
}
|
|
internalCounter++;
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
internal static DateTime ConvertBezahlDatum(string text)
|
|
{
|
|
//21.06.202308:39
|
|
int uhrzeitsignature = text.IndexOf(':');
|
|
string datum = text.Substring(0, uhrzeitsignature - 2);
|
|
string uhrzeit = text.Substring(uhrzeitsignature-2,text.Length - uhrzeitsignature + 2);
|
|
|
|
return DateTime.Parse(string.Format("{0} {1}", datum, uhrzeit));
|
|
}
|
|
} |