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