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();
 }
Beispiel #5
0
 public void SearchAsync(ResponseViewModel[] source)
 {
     if(SearchCompleted!=null) ThreadPool.QueueUserWorkItem(_=>SearchCompleted(Search(source)));
 }
Beispiel #6
0
 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();
 }