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(); } }
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(); }