コード例 #1
0
        public SearchViewModel(Search search, SearchRepository repo, NotificationViewModel notif, ItemRepository itemRepo, LogsViewModel logs, Dispatcher dispatcher)
        {
            _search = search;
            URL = SearchURL;
            AutoStart = SearchAutoStart;
            Index = SearchIndex;

            _searchRepository = repo;

            _notifVM = notif;
            sList = new SearchEngine(itemRepo, _search, logs, dispatcher);

            _notifVM.RegisterSearchEvents(sList);
        }
コード例 #2
0
 public void UnregisterSearchEvents(SearchEngine sList)
 {
     sList.SearchStarted -= OnSearchStarted;
     sList.SearchFinished -= OnSearchFinished;
     sList.SearchStopped -= OnSearchStopped;
 }
コード例 #3
0
        void SearchStopped(SearchEngine sList)
        {
            lock ("ItemLists")
            {
                foreach (ItemPriceList list in sList.SearchItemL)
                {
                    if (LocalList.ContainsKey(list.ItemName))
                    {
                        List<ItemVend> ToRemove = new List<ItemVend>();
                        foreach (ItemVend item in list.ItemPriceL)
                        {
                            if (LocalList[list.ItemName].ItemPriceL.Contains(item))
                            {
                                ToRemove.Add(item);
                            }
                        }

                        foreach (ItemVend item in ToRemove)
                        {
                            LocalList[list.ItemName].ItemPriceL.Remove(item);
                        }
                        if (LocalList[list.ItemName].ItemPriceL.Count == 0)
                        {
                            LocalList.Remove(list.ItemName);
                        }
                    }
                }
            }

            sList.Dispose();
        }
コード例 #4
0
 void SearchFinished(SearchEngine sList)
 {
     lock ("ItemLists")
     {
         foreach (ItemPriceList list in sList.SearchItemL)
         {
             if (LocalList.ContainsKey(list.ItemName))
             {
                 List<ItemVend> ToAdd = new List<ItemVend>();
                 foreach (ItemVend item in list.ItemPriceL)
                 {
                     if (!LocalList[list.ItemName].ItemPriceL.Contains(item))
                     {
                         ToAdd.Add(item);
                     }
                 }
                 foreach (ItemVend item in ToAdd)
                 {
                     LocalList[list.ItemName].ItemPriceL.Add(item);
                 }
             }
             else
             {
                 LocalList.Add(list.ItemName, list);
             }
         }
     }
     if (Text != OldText)
     {
         OldText = Text;
         Commit();
         ShowWindow();
     }
 }
コード例 #5
0
 void DispatchSearchStopped(SearchEngine sList)
 {
     Action del = () => SearchStopped(sList);
     _dispatcher.Invoke(del);
 }