public void Process(List<CompetitionResultLive> lastResultList, FullResult result)
        {
            if (result.SubResult == null || result.SubResult.Count == 0) {
                return;
            }
            var lastSubResult = result.SubResult.Last();
            var generateScoreID = ScoreHelper.Instance.GenerateScoreID(lastSubResult.CompetitorResultOne, lastSubResult.CompetitorResultTwo);

            var lastResult = lastResultList.FirstOrDefault(lr => {
                var lra = lr.GetJoinedEntity<CompetitionResultLiveAdvanced>();
                return lra != null && lra.ScoreID == generateScoreID;
            });
            var lastAdvancedResult = lastResult?.GetJoinedEntity<CompetitionResultLiveAdvanced>();
            if (lastAdvancedResult == null) {
                lastAdvancedResult = new CompetitionResultLiveAdvanced {
                    ScoreID = generateScoreID,
                    CompetitionresultliveID = lastResultList.First().ID,
                    Datecreatedutc = DateTime.UtcNow,
                    Advancedparam = TennisLiveResultProcessor.GetServeBit(lastSubResult.Serve)
                };
                lastAdvancedResult.Save();
            }
        }
Ejemplo n.º 2
0
        public void Process(List<CompetitionResultLive> lastResultList, FullResult result)
        {
            var totalSubResults = result.SubResult.Count;
            if (result.SubResult == null || totalSubResults <= 1) {
                return;
            }
            var setSubResult = result.SubResult[totalSubResults - 2];
            var generateScoreID = ScoreHelper.Instance.GenerateScoreID(setSubResult.CompetitorResultOne, setSubResult.CompetitorResultTwo);
            var lastResult = lastResultList.FirstOrDefault(lr => {
                var lra = lr.GetJoinedEntity<CompetitionResultLiveAdvanced>();
                return lra != null && lra.ScoreID == generateScoreID;
            });
            var lastAdvancedResult = lastResult?.GetJoinedEntity<CompetitionResultLiveAdvanced>();
            if (lastAdvancedResult == null) {
                lastAdvancedResult = new CompetitionResultLiveAdvanced {
                    ScoreID = generateScoreID,
                    CompetitionresultliveID = lastResultList.First().ID,
                    Datecreatedutc = DateTime.UtcNow,
                    Advancedparam = GetServeBit(setSubResult.Serve)
                };
            }
            var gameSubResult = result.SubResult[totalSubResults - 1];
            var internalScore1 = GetInternalScore(gameSubResult.CompetitorResultOne);
            var internalScore2 = GetInternalScore(gameSubResult.CompetitorResultTwo);

            lastAdvancedResult.Advancedparam = GetMinimalAdvanceParamForScore(lastAdvancedResult.Advancedparam, internalScore1, internalScore2);
            lastAdvancedResult.Save();
        }