diff --git a/ConsoleApp3/CardMarketParser.cs b/ConsoleApp3/CardMarketParser.cs index cf41253..6e0fc3a 100644 --- a/ConsoleApp3/CardMarketParser.cs +++ b/ConsoleApp3/CardMarketParser.cs @@ -12,7 +12,6 @@ namespace CardmarketBot { private readonly string username; private readonly string password; - private readonly IUsedRepository _usedRepository; Dictionary portoberechnung = new Dictionary() { @@ -24,11 +23,10 @@ namespace CardmarketBot {"3,20 €", Helper.Porto.PRIO270 }, }; - public CardMarketParser(string username, string password, IUsedRepository repository) + public CardMarketParser(string username, string password) { this.username = username; this.password = password; - _usedRepository = repository; } public List ParseCardMarket() @@ -64,7 +62,7 @@ namespace CardmarketBot List ids = new List(); List kunden = new List(); - List bereitsbearbeitet = _usedRepository.Query; + IWebElement element; try { @@ -78,7 +76,6 @@ namespace CardmarketBot for (int i = 8; i < datas.Length; i += 7) { - //if (bereitsbearbeitet.Find(x => x.Equals(datas[i])) != null) continue; ids.Add(datas[i]); } } @@ -97,8 +94,6 @@ namespace CardmarketBot Kunde kunde = Helper.ConvertToKunde(element.Text); - if (bereitsbearbeitet.Find(x => x.Equals(id)) != null) kunde.Rechnungerstellt = true; - // Bezahldatum element = cd.FindElement(By.XPath("/html/body/main/section/div/div[1]/div/div[2]/div/div[2]/div[2]")); kunde.Bezahldatum = Helper.ConvertBezahlDatum(element.Text); diff --git a/ConsoleApp3/InvoiceParser.cs b/ConsoleApp3/InvoiceParser.cs index 5626d2d..d736ae6 100644 --- a/ConsoleApp3/InvoiceParser.cs +++ b/ConsoleApp3/InvoiceParser.cs @@ -42,7 +42,7 @@ namespace CardmarketBot List kunden; public InvoiceParser(List kunden) { - this.kunden = kunden.FindAll(x => x.Rechnungerstellt != true); + this.kunden = kunden; } public List GetInvoices() @@ -111,20 +111,16 @@ namespace CardmarketBot Id = null, MapAll = true, Quantity = 1, - //Price = PortoPreis[kunde.Versandskosten], Name = "Versandskosten", PositionNumber = 0, Discount = 0, TaxRate = 19, - //PriceGross = PortoPreis[kunde.Versandskosten], PriceTax = 19 }; if(kunde.OverrideVersandskosten != null) { - //Debugger.Break(); temp.InvoicePosSaves[temp.InvoicePosSaves.Length - 1].Price = Convert.ToDecimal(kunde.OverrideVersandskosten); temp.InvoicePosSaves[temp.InvoicePosSaves.Length - 1].Price = Convert.ToDecimal(kunde.OverrideVersandskosten); - //Debugger.Break(); } else { diff --git a/ConsoleApp3/Kunde.cs b/ConsoleApp3/Kunde.cs index 1a392c7..fe56a1c 100644 --- a/ConsoleApp3/Kunde.cs +++ b/ConsoleApp3/Kunde.cs @@ -11,7 +11,7 @@ class Kunde string plz; string ort; string land; - bool rechnungerstellt = false; + List artikels = new List(); public DateTime Bezahldatum { get; set; } @@ -41,8 +41,6 @@ class Kunde } } - public bool Rechnungerstellt { get => rechnungerstellt; set => rechnungerstellt = value; } - public Kunde(string Name, string Strasse, string Hausnummer, string PLZ, string Ort, string Land) { name = Name; diff --git a/ConsoleApp3/Program.cs b/ConsoleApp3/Program.cs index 58eec4c..0f484a4 100644 --- a/ConsoleApp3/Program.cs +++ b/ConsoleApp3/Program.cs @@ -3,6 +3,9 @@ using ConsoleApp3; using ConsoleApp3.Contracts; using System.Text.RegularExpressions; using System.Diagnostics; +using System.Net; +using System.Net.Sockets; +using System.Text; namespace CardmarketBot { @@ -10,12 +13,13 @@ namespace CardmarketBot { static void Main(string[] args) { - IUsedRepository usedRepository = new UsedRepository(); + CheckVerkauf("120202"); + //IUsedRepository usedRepository = new UsedRepository(); // Kunden aus Cardmarket erstellen List kunden = new List(); - CardMarketParser cardMarketParser = new CardMarketParser("More-Tcg", "Magnatpower310!!", usedRepository); + CardMarketParser cardMarketParser = new CardMarketParser("More-Tcg", "Magnatpower310!!"); kunden = cardMarketParser.ParseCardMarket(); @@ -29,21 +33,67 @@ namespace CardmarketBot foreach (ModelRechnung item in rechnungen) { - SevdeskService sevdeskService = new SevdeskService("7251554968610b78ca865b2b774b4134"); - sevdeskService.Create(item); - + var str_header = item.Invoice.Header; + if (str_header != null) + { + Regex regex = new Regex("[0-9]*$"); + Match matched = regex.Match(str_header); + string verkaufnummer = str_header.Substring(matched.Index); + if(!CheckVerkauf(verkaufnummer)) + { + Debugger.Break(); + SevdeskService sevdeskService = new SevdeskService("7251554968610b78ca865b2b774b4134"); + sevdeskService.Create(item); + } + } } // Post CSV Erstellen DeutschePost deutschePost = new DeutschePost(kunden); deutschePost.GenerateCSV(); - - usedRepository.Insert(kunden); - Console.WriteLine("Fertig"); Console.ReadLine(); } + + private static bool CheckVerkauf(string verkaufnummer) + { + byte[] bytes = new byte[1024]; + + IPHostEntry host = Dns.GetHostEntry("server"); + IPAddress iPAddress = host.AddressList[0]; + + + + IPEndPoint remoteEP = new IPEndPoint(iPAddress, 4000); + + Socket sender = new Socket(iPAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp); + try + { + sender.Connect(remoteEP); + Console.WriteLine("Socket connected to {0}", sender.RemoteEndPoint.ToString()); + byte[] msg = Encoding.ASCII.GetBytes(string.Format("TEST #{0}", verkaufnummer)); + int bytesSent = sender.Send(msg); + int bytesRec = sender.Receive(bytes); + Console.WriteLine("Replying = {0}", Encoding.ASCII.GetString(bytes, 0, bytesRec)); + sender.Shutdown(SocketShutdown.Both); + sender.Close(); + } + catch (ArgumentNullException ane) + { + Console.WriteLine("ArgumentNullException : {0}", ane.ToString()); + } + catch (SocketException se) + { + Console.WriteLine("SocketException : {0}", se.ToString()); + } + catch (Exception e) + { + Console.WriteLine("Unexpected exception : {0}", e.ToString()); + } + + return true; + } } } \ No newline at end of file diff --git a/ConsoleApp3/SocketClient.cs b/ConsoleApp3/SocketClient.cs new file mode 100644 index 0000000..9b0ee99 --- /dev/null +++ b/ConsoleApp3/SocketClient.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CardMarketBot +{ + internal class SocketClient + { + } +}