/// <summary> /// 大会グレードの一覧を作成します。 /// </summary> /// <param name="participationClassification">出場区分。</param> /// <returns>大会グレードの一覧。</returns> private List <SelectListItem> CreateTournamentGrades(ParticipationClassification participationClassification) { var tournamentGrade = this.GetTournamentGrade(participationClassification); return(Enumeration .GetAll <TournamentGrade>() .Select(o => new SelectListItem(o.Name, $"{o.Id}", o.Id == tournamentGrade.Id)) .ToList()); }
/// <summary> /// ドロー設定を更新します。 /// </summary> /// <param name="participationClassification">出場区分。</param> /// <param name="drawSettings">ドロー設定。</param> public void UpdateDrawSettings(ParticipationClassification participationClassification, DrawSettings drawSettings) { if (participationClassification == ParticipationClassification.Main) { this.MainDrawSettings.UpdateFromObject(drawSettings); } else { this.QualifyingDrawSettings.UpdateFromObject(drawSettings); } }
/// <summary> /// 大会グレードを取得します。 /// </summary> /// <param name="participationClassification">出場区分。</param> /// <returns>大会グレード。</returns> private TournamentGrade GetTournamentGrade(ParticipationClassification participationClassification) { if (participationClassification == ParticipationClassification.Main) { return(DrawTable.MainDrawSettings.TournamentGrade); } else { return(DrawTable.QualifyingDrawSettings.TournamentGrade); } }
/// <summary> /// ブロックの新しいインスタンスを生成します。 /// </summary> /// <param name="blockNumber">ブロック番号。</param> /// <param name="participationClassification">出場区分。</param> /// <param name="gameDate">試合日。</param> /// <param name="game">試合一覧。</param> /// <param name="drawSettings">ドロー設定。</param> public Block( BlockNumber blockNumber, ParticipationClassification participationClassification, GameDate gameDate, DrawSettings drawSettings) { this.BlockNumber = blockNumber; this.ParticipationClassification = participationClassification; this.GameDate = gameDate; this.Games = null; this.DrawSettings = drawSettings; }
/// <summary> /// ドロー数の一覧を作成します。 /// </summary> /// <param name="participationClassification">出場区分。</param> /// <returns>ドロー数の一覧。</returns> private List <SelectListItem> CreateNumberOfDraws(ParticipationClassification participationClassification) { var numberOfDraws = this.GetNumberOfDraws(participationClassification); var numberOfEntries = this.GetNumberOfEntries(participationClassification); return(Enumerable .Range(2, 8) .Select(o => (previousValue: (int)Math.Pow(2, o - 1), currentValue: (int)Math.Pow(2, o))) .Select(o => CreateItem(o.previousValue, o.currentValue)) .ToList()); SelectListItem CreateItem(int previousValue, int currentValue) { return(new SelectListItem( $"{currentValue}", $"{currentValue}", numberOfDraws.IsConfigured ? numberOfDraws.Value == currentValue : previousValue < numberOfEntries && numberOfEntries <= currentValue)); } }
/// <summary> /// 出場者数を取得します。 /// </summary> /// <param name="participationClassification">出場区分。</param> /// <returns>出場者数。</returns> private int NumberOfEntries(ParticipationClassification participationClassification) { return(this.EntryDetails .Count(o => o.ParticipationClassification == participationClassification)); }
/// <summary> /// ドロー設定を取得します。 /// </summary> /// <param name="participationClassification">出場区分。</param> public DrawSettings GetDrawSettings(ParticipationClassification participationClassification) { return(participationClassification == ParticipationClassification.Main ? this.MainDrawSettings : this.QualifyingDrawSettings); }
/// <summary> /// ドロー数を取得します。 /// </summary> /// <param name="participationClassification">出場区分。</param> /// <returns>ドロー数。</returns> private NumberOfDraws GetNumberOfDraws(ParticipationClassification participationClassification) { return(participationClassification == ParticipationClassification.Main ? DrawTable.MainDrawSettings.NumberOfDraws : DrawTable.QualifyingDrawSettings.NumberOfDraws); }