Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
 public DocChecker(KontoEntriesHolder kontoEntriesHolder)
 {
     _kontoEntriesHolder = kontoEntriesHolder;
     HtmlBodyInnerText = HtmlBody.InnerText;
 }