internal static bool GetAllEntriesFromPdfFile(KontoEntriesHolder kontoEntriesHolder, List<BankRow> rows) { var newEntriesStart = kontoEntriesHolder.NewKontoEntries.Count; var newBatchOfKontoEntriesAlreadyRed = EntryAdder.GetNewBatchOfKontoEntriesAlreadyRed( kontoEntriesHolder.KontoEntries, kontoEntriesHolder.NewKontoEntries); foreach (var row in rows) { EntryAdder.AddNewEntryFromStringArray( row, kontoEntriesHolder.KontoEntries, kontoEntriesHolder.NewKontoEntries, newBatchOfKontoEntriesAlreadyRed); } return kontoEntriesHolder.NewKontoEntries.Count > newEntriesStart; }
internal static bool GetAllVisibleEntriesFromWebBrowser( KontoEntriesHolder kontoEntriesHolder, WebBrowser webBrowser1 //SortedList kontoEntries, //SortedList newKontoEntries, //ref bool somethingChanged, //SaldoHolder saldoHolder ) { if (webBrowser1 == null || webBrowser1.Document == null) { return false; } var noKe = kontoEntriesHolder.KontoEntries.Count; // Se om något ändras sen... var noNewKontoEntriesBeforeLoading = kontoEntriesHolder.NewKontoEntries.Count; // Kolla browser efter entries. if (webBrowser1.Document.Window != null) { switch (ProgramSettings.BankType) { case BankType.Handelsbanken: #region Handelsbanken // bool nextIsAllkreditFaktureratEtc; // Kolla även huvuddocet kontoEntriesHolder.Doc = webBrowser1.Document.Window.Document; var docChecker = new DocChecker(kontoEntriesHolder); //webBrowser1.Document.Window.Document, //kontoEntries, newKontoEntries, ref somethingChanged, saldoHolder); docChecker.CheckDocForEntries(); if (webBrowser1.Document.Window.Frames != null) { foreach (HtmlWindow currentWindow in webBrowser1.Document.Window.Frames) { //break;//Debug var doc = currentWindow.Document; docChecker.CheckDocForEntries(); } } #endregion break; case BankType.Swedbank: #region Swedbank if (webBrowser1.Document.Body != null) { // Get saldo GetSwedbankSaldo(webBrowser1.Document.Body, kontoEntriesHolder.SaldoHolder); var saldoTable = webBrowser1.Document.Body.FirstChild.NextSibling.NextSibling.FirstChild.NextSibling .FirstChild.FirstChild.FirstChild.FirstChild.FirstChild.FirstChild.FirstChild .FirstChild.NextSibling.NextSibling.FirstChild.NextSibling.FirstChild .NextSibling.NextSibling; // ReSharper disable ConditionIsAlwaysTrueOrFalse if (saldoTable != null // webBrowser1.Document.Body.FirstChild.NextSibling.NextSibling.FirstChild.NextSibling. // FirstChild.FirstChild.FirstChild.FirstChild.FirstChild.FirstChild.FirstChild.FirstChild.NextSibling. // NextSibling.FirstChild.NextSibling.FirstChild.NextSibling.NextSibling != null ) { // ReSharper restore ConditionIsAlwaysTrueOrFalse // Get Entries // ReSharper disable ConditionIsAlwaysTrueOrFalse if (saldoTable.NextSibling == null) { // ReSharper restore ConditionIsAlwaysTrueOrFalse GetHtmlEntriesFromSwedBank( saldoTable.FirstChild.FirstChild.NextSibling.Children, kontoEntriesHolder.KontoEntries, kontoEntriesHolder.NewKontoEntries); } // ReSharper disable ConditionIsAlwaysTrueOrFalse else if (saldoTable.NextSibling != null) { // ReSharper restore ConditionIsAlwaysTrueOrFalse GetHtmlEntriesFromSwedBank( saldoTable.NextSibling.FirstChild.FirstChild.NextSibling.Children, kontoEntriesHolder.KontoEntries, kontoEntriesHolder.NewKontoEntries); } } else if ( webBrowser1.Document.Body.FirstChild.NextSibling.NextSibling.FirstChild.NextSibling .FirstChild.FirstChild.FirstChild.FirstChild.FirstChild.FirstChild .FirstChild.FirstChild.NextSibling.NextSibling.FirstChild.NextSibling .FirstChild.NextSibling.FirstChild.FirstChild.NextSibling != null) { // Get Entries GetHtmlEntriesFromSwedBank( webBrowser1.Document.Body.FirstChild.NextSibling.NextSibling.FirstChild .NextSibling.FirstChild.FirstChild.FirstChild.FirstChild.FirstChild .FirstChild.FirstChild.FirstChild.NextSibling.NextSibling.FirstChild .NextSibling.FirstChild.NextSibling.FirstChild.FirstChild.NextSibling .FirstChild.FirstChild.NextSibling.Children, kontoEntriesHolder.KontoEntries, kontoEntriesHolder.NewKontoEntries); } } #endregion break; case BankType.Mobilhandelsbanken: var htmlBody = webBrowser1.Document.Body; if (htmlBody != null) { MobileHandelsbanken.GetAllEntriesFromMobileHandelsBanken (htmlBody, kontoEntriesHolder.KontoEntries, kontoEntriesHolder.NewKontoEntries, kontoEntriesHolder.SaldoHolder); } break; default: throw new ArgumentOutOfRangeException(); } } if (kontoEntriesHolder.KontoEntries.Count != noKe) { kontoEntriesHolder.SomethingChanged = true; // Här har man tagit in nytt som inte är sparat } // Returnera aom något ändrats. Är de nya inte samma som innan laddning, så är det sant att något ändrats. return kontoEntriesHolder.NewKontoEntries.Count != noNewKontoEntriesBeforeLoading; }
public DocChecker(KontoEntriesHolder kontoEntriesHolder) { _kontoEntriesHolder = kontoEntriesHolder; HtmlBodyInnerText = HtmlBody.InnerText; }