Esempio n. 1
0
        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));
        }
Esempio n. 3
0
        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);
        }