예제 #1
0
        private static void MergeMatchResult(MatchLn mtch)
        {
            try
            {
                MatchResultLn rslt = new MatchResultLn();

                rslt.MatchId                = mtch.MatchId;
                rslt.BtrMatchId             = mtch.BtrMatchId;
                rslt.StartDate.Value        = mtch.StartDate.Value;
                rslt.HomeCompetitorId.Value = mtch.HomeCompetitorId.Value;
                rslt.AwayCompetitorId.Value = mtch.AwayCompetitorId.Value;
                rslt.IsLiveBet.Value        = mtch.IsLiveBet.Value;
                rslt.Score.Value            = mtch.LiveMatchInfo.Score.Value;
                rslt.ExtendedState.Value    = string.Empty;
                rslt.TeamWon                = mtch.TeamWon.Value;

                var lGroups = mtch.ParentGroups.Clone();

                GroupLn groupTournament = null;
                GroupLn groupSport      = null;
                GroupLn groupCategory   = null;

                foreach (var group in lGroups)
                {
                    if (group.Type == GroupLn.GROUP_TYPE_GROUP_T)
                    {
                        groupTournament = group;
                    }
                    else if (group.Type == GroupLn.GROUP_TYPE_SPORT)
                    {
                        groupSport = group;
                    }
                    else if (group.Type == GroupLn.GROUP_TYPE_GROUP_C)
                    {
                        groupCategory = group;
                    }
                }

                ExcpHelper.ThrowIf <RelatedLineObjectNotFoundException>(groupTournament == null, "Cannot find Tournament Group for {0} and {1}", mtch, rslt);
                ExcpHelper.ThrowIf <RelatedLineObjectNotFoundException>(groupSport == null, "Cannot find Sport Group for {0} and {1}", mtch, rslt);
                ExcpHelper.ThrowIf <RelatedLineObjectNotFoundException>(groupCategory == null, "Cannot find Category Group for {0} and {1}", mtch, rslt);

                rslt.TournamentGroupId.Value = groupTournament.GroupId;
                rslt.SportGroupId.Value      = groupSport.GroupId;
                rslt.CategoryGroupId.Value   = groupCategory.GroupId;

                LineSr.Instance.AllObjects.MatchResults.MergeLineObject(rslt);
            }
            catch (Exception excp)
            {
                m_logger.Excp(excp, "MergeMatchResult ERROR for {0}", mtch);
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
 private static bool ResultFilter(MatchResultLn result)
 {
     if (result.StartDate.Value != null)
     {
         return(false);
     }
     if (result.StartDate.Value.LocalDateTime < resultExpireDate)
     {
         return(true);
     }
     return(false);
 }
예제 #4
0
        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);
        }