Exemplo n.º 1
0
        private async Task FetchData(WatchedItemDataEntry entry)
        {
            var semaphore = _domainSemaphores[entry.WatchedItemEntry.Domain];

            try
            {
                await semaphore.WaitAsync();

                var crawler = _crawlerManager.Manager.GetCrawler(entry.WatchedItemEntry.Domain);
                var result  = await crawler.CrawlById(entry.WatchedItemEntry.Id);

                entry.Data = result.Result;

                ItemDetailsFetched?.Invoke(this, entry);
            }
            finally
            {
                semaphore.Release();
            }
        }
Exemplo n.º 2
0
 public async void RequestSingleItemUpdate(WatchedItemDataEntry entry)
 {
     await FetchData(entry);
 }
Exemplo n.º 3
0
 public async void RemoveWatchedEntry(WatchedItemDataEntry entry)
 {
     _watchedItems.Remove(entry.WatchedItemEntry.Id);
     Entries.Remove(entry);
     await _appVariables.WatchedItems.SetAsync(Entries.Select(dataEntry => dataEntry.WatchedItemEntry).ToList());
 }