Ejemplo n.º 1
0
        /// <summary>
        /// Writes the data of the provided <see cref="IStage"/> to the <see cref="StringBuilder"/>
        /// </summary>
        /// <param name="stage">The <see cref="IStage"/> whose data is to be written</param>
        /// <returns>A <see cref="StringBuilder"/> containing string representation of the provided stage</returns>
        private StringBuilder WriteStageData(IStage stage)
        {
            Contract.Requires(stage != null);
            Contract.Ensures(Contract.Result <StringBuilder>() != null);

            var builder = new StringBuilder();

            AddSportEventData(stage, builder);

            var competitors    = _taskProcessor.GetTaskResult(stage.GetCompetitorsAsync());
            var competitorsStr = competitors == null
                ? "null"
                : string.Join(",", competitors.Select(s => s.Id));
            var parent   = _taskProcessor.GetTaskResult(stage.GetParentStageAsync());
            var stages   = _taskProcessor.GetTaskResult(stage.GetStagesAsync());
            var category = _taskProcessor.GetTaskResult(stage.GetCategoryAsync());
            var sport    = _taskProcessor.GetTaskResult(stage.GetSportAsync());

            var competitionStatus = _taskProcessor.GetTaskResult(stage.GetStatusAsync());
            var eventResults      = string.Empty;
            var eventStatus       = string.Empty;

            if (competitionStatus != null)
            {
                eventStatus = competitionStatus.Status.ToString();
                if (competitionStatus.EventResults != null && competitionStatus.EventResults.Any())
                {
                    eventResults = string.Join(",", competitionStatus.EventResults.Select(s => $"E{s.Id}={s.HomeScore}:{s.AwayScore};{s.MatchStatus}/{s.Status}"));
                    var eventResultMatchStatus = _taskProcessor.GetTaskResult(competitionStatus.EventResults.First().GetMatchStatusAsync(_culture));
                    var x = eventResultMatchStatus?.Id;
                }
            }

            builder.Append(" Competitors=").Append(competitorsStr)
            .Append(" Parent=").Append(parent?.Id.ToString() ?? "null")
            .Append(" Stages=").Append(stages?.Count().ToString() ?? "null")
            .Append(" Sport=").Append(sport?.Id)
            .Append(" Category=").Append(category?.Id)
            .Append(" EventStatus=").Append(eventStatus)
            .Append(" EventResults=[").Append(eventResults).Append("]");

            return(builder);
        }