/// <summary> /// /// </summary> /// <param name="searches"></param> /// <param name="context"></param> /// <param name="result"></param> public void LoadUPRsFromBuildingsBlockingCollection(List <Uri> searches, JSONContext context, BlockingCollection <SearchAutoCompleteResult> result = null) { if (result == null) { result = DomLoader.BlockingCollectionUPRs; } //context.Configuration.AutoDetectChangesEnabled = false; //Загрузка с сайта using (CancellationTokenSource ts = new CancellationTokenSource()) { Task t1 = Task.Run(() => DomLoader.UPRsFromHouses(searches, Encoding.UTF8, result)); //запись найденных Task t2 = Task.Run(() => { SearchAutoCompleteResult upr = new SearchAutoCompleteResult(); foreach (var n in result.GetConsumingEnumerable()) { try { context.UPRs.AddOrUpdate(up => up.Url, n); context.SaveChanges(); Logger.Logger.Info(string.Join(" ", "ВНЕСЕНО", n.Value, result.Count)); } catch (Exception) { } } context.SaveChanges(); ts.Cancel(); }); Task.WaitAll(new Task[] { t1, t2 }); } }
public UPRsite LoadUpr(SearchAutoCompleteResult upr, Encoding encoding) { Uri _upruri = new Uri(BaseUri, upr.Url); string _html = DownloadString(_upruri, encoding, null); Guid _id = new Guid(_upruri.Segments[_upruri.Segments.Count() - 1]); Logger.Logger.Info(_upruri.ToString()); return(new UPRsite(_id, upr.Value, _upruri.ToString(), _html)); }
protected void DownloadUPR(SearchAutoCompleteResult upr, Encoding encoding) { QueueUPRsites.Enqueue(LoadUpr(upr, encoding)); }
//delegate void loadURIList(); protected async Task LoadURIListTask(SearchAutoCompleteResult upr, Encoding encoding) { await LoadUPR_Async(upr, encoding); }
public async Task LoadUPR_Async(SearchAutoCompleteResult upr, Encoding encoding) { await Task.Run(() => { }); }