public void SearchResults(SyncList <MatchResultVw> lResultsToSync, DelegateFilterResults dfr) { CheckTime ct = new CheckTime("SearchResults() entered"); lock (m_oReadLocker) { ct.AddEvent("Inside of lock"); if (lResultsToSync != null) { HashSet <MatchResultVw> hsMatches = new HashSet <MatchResultVw>(); SyncList <MatchResultLn> lAllResults = m_diAll.MatchResults.ToSyncList(); foreach (MatchResultLn result in lAllResults) { if (dfr == null || dfr(result)) { hsMatches.Add(result.MatchResultView); if (!lResultsToSync.Contains(result.MatchResultView)) { lResultsToSync.Add(result.MatchResultView); } } } for (int i = 0; i < lResultsToSync.Count;) { MatchResultVw matchResultView = lResultsToSync[i]; if (!hsMatches.Contains(matchResultView)) { lResultsToSync.RemoveAt(i); } else { i++; } } } } ct.AddEvent("Completed"); ct.Info(m_logger); }
//private bool ResultMatchFilter(MatchResultLn match) //{ // if (match.Score.Value.Contains("-1:-1")) // return false; // if (match.MatchLn != null) // return false; // if (match.CategoryGroupId.Value == null) // return false; // if (match.CategoryGroupId.Value == 0) // return false; // if (SportsBarItems.Count > 1 && !SportsBarItems.ElementAt(0).IsChecked) // { // if (!ChangeTracker.SelectedDescriptors.Contains(match.MatchResultView.SportView.LineObject.GroupSport.SportDescriptor)) // return false; // } // if (match.IsLiveBet.Value && match.StartDate.Value.LocalDateTime < DateTime.Now.AddDays(-ChangeTracker.ResultsSelectedDay - 1).Date) // return false; // var start = DateTime.Now.AddDays(-ChangeTracker.ResultsSelectedDay).Date; // var end = DateTime.Now.AddDays(-ChangeTracker.ResultsSelectedDay).Date.AddHours(23).AddMinutes(59).AddSeconds(59); // if (match.StartDate.Value.LocalDateTime > end) // return false; // if (match.StartDate.Value.LocalDateTime < start) // return false; // if (ids.Contains(match.BtrMatchId)) // return false; // ids.Add(match.BtrMatchId); // return true; //} //private bool SportBarMatchFilter(MatchResultLn match) //{ // if (match.Score.Value.Contains("-1:-1")) // return false; // if (match.MatchLn != null) // return false; // if (match.CategoryGroupId.Value == null) // return false; // if (match.CategoryGroupId.Value == 0) // return false; // if (match.IsLiveBet.Value && match.StartDate.Value.LocalDateTime < DateTime.Now.AddDays(-ChangeTracker.ResultsSelectedDay - 1).Date) // return false; // var start = DateTime.Now.AddDays(-ChangeTracker.ResultsSelectedDay).Date; // var end = DateTime.Now.AddDays(-ChangeTracker.ResultsSelectedDay).Date.AddHours(23).AddMinutes(59).AddSeconds(59); // if (match.StartDate.Value.LocalDateTime > end) // return false; // if (match.StartDate.Value.LocalDateTime < start) // return false; // return true; //} //private void FillResults() //{ //ids.Clear(); //Repository.FindResults(Results, ResultMatchFilter, Comparison); //string oldSport = ""; //for (int i = 0; i < Results.Count; i++) //{ // string currentSport = Results.ElementAt(i).SportView.DisplayName; // if (string.IsNullOrEmpty(currentSport)) // continue; // if (currentSport != oldSport) // { // Results.ElementAt(i).IsHeader = true; // oldSport = currentSport; // } // else // Results.ElementAt(i).IsHeader = false; //} //} //public void FillSportsBar() //{ // SortableObservableCollection<MatchResultVw> ResultMatches = new SortableObservableCollection<MatchResultVw>(); // Repository.FindResults(ResultMatches, SportBarMatchFilter, Comparison); // Dispatcher.Invoke(() => // { // try // { // var sports = ResultMatches.Where(x => x.SportView != null).Select(x => x.SportView).Distinct().ToList(); // SportBarItem allsports = SportsBarItems.FirstOrDefault(x => x.SportDescriptor == SportSr.ALL_SPORTS); // if (allsports != null) // allsports.SportName = TranslationProvider.Translate(MultistringTags.ALL_SPORTS) as string; // foreach (var group in sports) // { // if (SportsBarItems.Count(x => x.SportDescriptor == group.LineObject.GroupSport.SportDescriptor) == 0) // { // SportsBarItems.Add(new SportBarItem(group.DisplayName, group.LineObject.GroupSport.SportDescriptor)); // } // else // { // SportsBarItems.First(x => x.SportDescriptor == @group.LineObject.GroupSport.SportDescriptor).SportName = @group.DisplayName; // } // } // for (int i = 1; i < SportsBarItems.Count; ) // { // var item = SportsBarItems[i]; // if (sports.Count(x => x.LineObject.GroupSport.SportDescriptor == item.SportDescriptor) == 0) // { // SportsBarItems.RemoveAt(i); // } // else // { // i++; // } // } // SportsBarItems.Sort(ComparisonSportsBar); // OnPropertyChanged("SportsBarVisibility"); // } // catch (Exception ex) // { // } // }); //} //public int ComparisonSportsBar(SportBarItem m1, SportBarItem m2) //{ // return m1.SortingOrder.CompareTo(m2.SortingOrder); //} private int Comparison(MatchResultVw m1, MatchResultVw m2) { string sSportName1 = m1.SportView.LineObject.GetDisplayName(SelectedLanguage); string sSportName2 = m2.SportView.LineObject.GetDisplayName(SelectedLanguage); if (sSportName1.Equals(sSportName2)) { if (m1.LineObject.MatchLn != null) { if (m1.LiveMatchMinute == m2.LiveMatchMinute) { if (m1.StartDate == m2.StartDate) { if (m1.Name == m2.Name) { return(m2.LineObject.MatchId.CompareTo(m1.LineObject.MatchId)); } return(m2.Name.CompareTo(m1.Name)); } return(m2.StartDate.CompareTo(m1.StartDate)); } } else { if (m1.StartDate == m2.StartDate) { if (m1.Name == m2.Name) { return(m2.LineObject.MatchId.CompareTo(m1.LineObject.MatchId)); } return(m2.Name.CompareTo(m1.Name)); } return(m2.StartDate.CompareTo(m1.StartDate)); } return(m2.LiveMatchMinute.CompareTo(m1.LiveMatchMinute)); } return(sSportName1.CompareTo(sSportName2)); }
public void SortingTest() { var icehockeyresult = new MatchResultVw(new MatchResultLn() { MatchId = 2 }); SortableObservableCollection <MatchResultVw> icehockey = new SortableObservableCollection <MatchResultVw>(); icehockey.Add(icehockeyresult); SyncList <MatchResultVw> basketballIcehockey = new SyncList <MatchResultVw>(); basketballIcehockey.Add(new MatchResultVw(new MatchResultLn() { MatchId = 1 })); basketballIcehockey.Add(icehockeyresult); icehockey.ApplyChanges(basketballIcehockey); Assert.AreEqual(2, icehockey.Count); }