public static void CheckAndAddNewItemsForLists(KontoEntriesViewModelListUpdater lists)
        {
            // TODO: flytta denna till annan fil, ev. skicka med fkn som delegat
            // Skriv in nya entries i textrutan
            if (lists.NewKontoEntriesIn.Count > 0)
            {
                foreach (DictionaryEntry item in lists.NewKontoEntriesIn)
                {
                    var newKe = item.Value as KontoEntry;

                    if (newKe == null)
                    {
                        continue;
                    }

                    var foundDoubleInUList = lists.NewIitemsListEdited
                            .CheckIfKeyExistsInKontoEntries(newKe.KeyForThis)
                        || lists.NewIitemsListEdited
                                            .Any(
                                                viewItem =>
                                                (viewItem).KeyForThis.Equals(
                                                    newKe.KeyForThis));

                    // Om man laddar html-entries 2 gånger i rad, så ska det inte skapas dubletter
                    if (foundDoubleInUList)
                    {
                        continue;
                    }

                    // Lägg till i org
                    if (lists.NewIitemsListOrg != null)
                    {
                        lists.NewIitemsListOrg.Add(newKe);
                    }

                    // Kolla om det är en dubblet eller om det är finns ett motsvarade "skyddat belopp"
                    if (lists.kontoEntries.ContainsKey(newKe.KeyForThis))
                    {
                        continue;
                    }

                    // kolla om det är "Skyddat belopp", dubblett o likn. innan man ändrar entryn, med autokat

                    // Slå upp autokategori
                    var lookedUpCat = CategoriesHolder.AllCategories.AutocategorizeType(newKe.Info);
                    if (lookedUpCat != null)
                    {
                        newKe.TypAvKostnad = lookedUpCat;
                    }

                    #region Old

                    // markera de som är dubblet eller skb, och flagga dem för ersättning av de som redan finns i minnet
                    // Gissa om det är en dublett, jmfr på datum, info och kost
                    // if (GuessedDouble(newKE))
                    // {
                    // continue;
                    // }
                    #endregion

                    // Lägg till i edited
                    lists.NewIitemsListEdited.Add(newKe);
                }
            }
        }
예제 #2
0
        /// <summary>Uppdatera UI för nya entries, gör gisningar av dubbletter, typ av kostnad etc
        /// </summary>
        private void CheckAndAddNewItems(KontoEntriesViewModelListUpdater lists)
        {
            // Flagga och se vad som är nytt etc.
            KontoEntriesChecker.CheckAndAddNewItemsForLists(lists);

            // Lägg till i org
            if (lists.NewIitemsListOrg != null)
            {
                lists.NewIitemsListOrg.ForEach(k => ViewUpdateUi.AddToListview(newIitemsListOrg, k));
            }

            // Filtrera ut de som inte redan ligger i UI
            var inUiListAlready = newIitemsListEdited.ItemsAsKontoEntries;
            foreach (var entry in lists.NewIitemsListEdited)
            {
                if (!inUiListAlready.Any(e=> e.KeyForThis == entry.KeyForThis))
                {
                    lists.ToAddToListview.Add(entry);
                }
            }

            foreach (var entry in lists.ToAddToListview)
            {
                // kolla om det är "Skyddat belopp", och se om det finns några gamla som matchar.
                KontoEntriesChecker.CheckForSkyddatBeloppMatcherAndGuesseDouble(entry, kontoEntriesHolder.KontoEntries);

                // Lägg till i edited
                ViewUpdateUi.AddToListview(newIitemsListEdited, entry);
            }

            // Updatera memlistan för att se om någon entry fått ny färg
            UpdateEntriesToSaveMemList();
        }