コード例 #1
0
        /// <summary>
        /// Asynchronously builds a name of the associated instance
        /// </summary>
        /// <param name="culture">The culture information.</param>
        /// <returns>A <see cref="Task{String}" /> representing the asynchronous operation</returns>
        /// <exception cref="NameExpressionException">Error occurred while evaluating name expression</exception>
        public async Task <string> BuildNameAsync(CultureInfo culture)
        {
            if (_propertyName.Equals("event"))
            {
                if (_sportEvent is IMatch || _sportEvent is ISoccerEvent)
                {
                    var homeCompetitor = await GetHomeCompetitor(culture).ConfigureAwait(false);

                    var awayCompetitor = await GetAwayCompetitor(culture).ConfigureAwait(false);

                    return($"{homeCompetitor} vs {awayCompetitor}");
                }

                return(await _sportEvent.GetNameAsync(culture).ConfigureAwait(false));
            }

            switch (Array.IndexOf(SupportedOperands, _propertyName))
            {
            case 0:
                return(await GetHomeCompetitor(culture).ConfigureAwait(false));

            case 1:
                return(await GetAwayCompetitor(culture).ConfigureAwait(false));

            default:
                throw new NameExpressionException($"Operand {_propertyName} is not supported. Supported operands are: {string.Join(", ", SupportedOperands)}", null);
            }
        }
コード例 #2
0
        /// <summary>
        /// Adds the info about the passed <see cref="ISportEvent"/> to the provided <see cref="StringBuilder"/>
        /// </summary>
        /// <param name="sportEvent">The <see cref="ISportEvent"/> containing data to display</param>
        /// <param name="builder">The <see cref="StringBuilder"/> to which to add the data</param>
        private void AddEntityData(ISportEvent sportEvent, StringBuilder builder)
        {
            Guard.Argument(sportEvent, nameof(sportEvent)).NotNull();
            Guard.Argument(builder, nameof(builder)).NotNull();

            var scheduled    = _taskProcessor.GetTaskResult(sportEvent.GetScheduledTimeAsync());
            var scheduledEnd = _taskProcessor.GetTaskResult(sportEvent.GetScheduledEndTimeAsync());
            var name         = _taskProcessor.GetTaskResult(sportEvent.GetNameAsync(_culture));
            var sportId      = _taskProcessor.GetTaskResult(sportEvent.GetSportIdAsync());

            builder.Append("Id=").Append(sportEvent.Id);
            builder.Append(" Name=").Append(name);
            builder.Append(" SportId=").Append(sportId);
            builder.Append(" Scheduled=").Append(scheduled?.ToShortDateString() ?? "null");
            builder.Append(" ScheduledEnd=").Append(scheduledEnd?.ToShortDateString() ?? "null");
        }
コード例 #3
0
        /// <summary>
        /// Adds the info about the passed <see cref="ISportEvent"/> to the provided <see cref="StringBuilder"/>
        /// </summary>
        /// <param name="sportEvent">The <see cref="ISportEvent"/> containing data to display</param>
        /// <param name="builder">The <see cref="StringBuilder"/> to which to add the data</param>
        private void AddEntityData(ISportEvent sportEvent, StringBuilder builder)
        {
            Contract.Requires(sportEvent != null);
            Contract.Requires(builder != null);

            var scheduled    = _taskProcessor.GetTaskResult(sportEvent.GetScheduledTimeAsync());
            var scheduledEnd = _taskProcessor.GetTaskResult(sportEvent.GetScheduledEndTimeAsync());
            var name         = _taskProcessor.GetTaskResult(sportEvent.GetNameAsync(_culture));
            var sportId      = _taskProcessor.GetTaskResult(sportEvent.GetSportIdAsync());

            builder.Append("Id=").Append(sportEvent.Id);
            builder.Append(" Name=").Append(name);
            builder.Append(" SportId=").Append(sportId);
            builder.Append(" Scheduled=").Append(scheduled?.ToShortDateString() ?? "null");
            builder.Append(" ScheduledEnd=").Append(scheduledEnd?.ToShortDateString() ?? "null");
        }