private void EndSearch(ResponseViewModel[] result) { SearchResult=result; searching=false; StatusText=""; System.Windows.Input.CommandManager.InvalidateRequerySuggested(); }
private void EndLoadDatabase(ResponseViewModel[] res,PartNumberViewModel[] parts,PersonViewModel[] people,DateTime date) { responses=res; publishedDate=date; PartsList=parts; PeopleList=people; StatusText=""; initializing=false; if(DateTime.Today>Settings.Default.LastUpdateCheckDate) StartCheckUpdate(); System.Windows.Input.CommandManager.InvalidateRequerySuggested(); }
private PersonViewModel[] CreatePeopleList(ResponseViewModel[] responses) { var peopleList=new List<PersonViewModel>(); foreach(var response in responses) if(!peopleList.Any(p=>p.Name==response.Tag)) peopleList.Add(new PersonViewModel(response.Tag,false)); return peopleList.ToArray(); }
private PartNumberViewModel[] CreatePartsList(ResponseViewModel[] responses) { var unsortedPartsList=new List<PartNumberViewModel>(); foreach(var response in responses) if(!unsortedPartsList.Any(p=>p.PartNumber==response.PartNumber)) unsortedPartsList.Add(new PartNumberViewModel(response.PartNumber,false)); return unsortedPartsList.OrderBy(p=>p.PartNumber).ToArray(); }
public void SearchAsync(ResponseViewModel[] source) { if(SearchCompleted!=null) ThreadPool.QueueUserWorkItem(_=>SearchCompleted(Search(source))); }
public ResponseViewModel[] Search(ResponseViewModel[] source) { var searchTask1=new Task<ResponseViewModel[]>(SearchInternal,source.Take(source.Length/2).ToArray()); var searchTask2=new Task<ResponseViewModel[]>(SearchInternal,source.Skip(source.Length/2).ToArray()); searchTask1.Start(); searchTask2.Start(); Task.WaitAll(searchTask1,searchTask2); return searchTask1.Result.Concat(searchTask2.Result).ToArray(); }