This repository has been archived on 2025-05-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
cardmarketbot/CardMarketBot/Helper.cs
2024-08-28 17:15:53 +02:00

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));
}
}