private Opponent( BlockNumber blockNumber, GameNumber gameNumber, DrawNumber drawNumber, SeedLevel seedLevel, AssignOrder assignOrder, PlayerClassification playerClassification, EntryNumber entryNumber, SeedNumber seedNumber, TeamCodes teamCodes, TeamAbbreviatedNames teamAbbreviatedNames, PlayerCodes playerCodes, PlayerNames playerNames, GameNumber fromGameNumber) { this.BlockNumber = blockNumber; this.GameNumber = gameNumber; this.DrawNumber = drawNumber; this.SeedLevel = seedLevel; this.AssignOrder = assignOrder; this.FramePlayerClassification = PlayerClassification.General; this.IsManuallySettingFrame = false; this.IsManuallyAssigned = false; this.PlayerClassification = playerClassification; this.EntryNumber = entryNumber; this.SeedNumber = seedNumber; this.TeamCodes = teamCodes; this.TeamAbbreviatedNames = teamAbbreviatedNames; this.PlayerCodes = playerCodes; this.PlayerNames = playerNames; this.FromGameNumber = fromGameNumber; }
/// <summary> /// 対戦者を更新します。 /// </summary> /// <param name="playerClassification">選手区分。</param> /// <param name="entryNumber">エントリー番号。</param> /// <param name="seedNumber">シード番号。</param> /// <param name="teamCodes">団体登録番号一覧。</param> /// <param name="teamAbbreviatedNames">団体名略称一覧。</param> /// <param name="playerCodes">登録番号一覧。</param> /// <param name="playerNames">氏名一覧。</param> /// <param name="fromGameNumber">一つ前の試合番号。</param> /// <param name="isManuallyAssigned">手動で割り当てフラグ。</param> public void UpdateOpponent( PlayerClassification playerClassification, EntryNumber entryNumber, SeedNumber seedNumber, TeamCodes teamCodes, TeamAbbreviatedNames teamAbbreviatedNames, PlayerCodes playerCodes, PlayerNames playerNames, GameNumber fromGameNumber = null, bool isManuallyAssigned = false) { this.PlayerClassification = playerClassification; this.EntryNumber = entryNumber; this.SeedNumber = seedNumber; this.TeamCodes = teamCodes; this.TeamAbbreviatedNames = teamAbbreviatedNames; this.PlayerCodes = playerCodes; this.PlayerNames = playerNames; this.FromGameNumber = fromGameNumber; this.IsManuallyAssigned = isManuallyAssigned; if (this.Game != null && this.Game.Opponents.Count(o => o.IsAssigned) == Game.maxOpponentsCount) { this.Game.GameResult.Ready(); } }
public void SetRegistrationDateAndPlanRef(string registrationDateAndPlanRef) { string entryNumberAsString = EntryNumber.ToString(); int index = registrationDateAndPlanRef.IndexOf(entryNumberAsString); RegistrationDateAndPlanRef = registrationDateAndPlanRef.Remove(index, entryNumberAsString.Length).TrimStart(); }
public async Task <HttpResponseMessage> UpdateGameStatus(int tournamentId, string tennisEventId, [FromBody] JsonElement json) { var gameResult = new GameResult(); var gameStatus = JsonConverter.ToEnumeration <GameStatus>(json.GetProperty("gameStatus")); var playerClassification = JsonConverter.ToEnumeration <PlayerClassification>(json.GetProperty("playerClassification")); var entryNumber = EntryNumber.FromValue(JsonConverter.ToNullableInt32(json.GetProperty("entryNumber"))); var gameScore = new GameScore(JsonConverter.ToString(json.GetProperty("gameScore"))); gameResult.UpdateGameResult( gameStatus, playerClassification, entryNumber, gameScore ); var blockNumber = new BlockNumber(JsonConverter.ToInt32(json.GetProperty("blockNumber"))); var gameNumber = new GameNumber(JsonConverter.ToInt32(json.GetProperty("gameNumber"))); await this.drawTableUseCase.UpdateGameStatus( tournamentId, tennisEventId, blockNumber, gameNumber, gameResult ); return(new HttpResponseMessage(HttpStatusCode.OK)); }
public async Task <HttpResponseMessage> RegisterEntryDetails(int tournamentId, string tennisEventId, [FromBody] JsonElement json) { try { var entryDetails = json.EnumerateArray().Select(o => { var entryNumber = new EntryNumber(JsonConverter.ToInt32(o.GetProperty("entryNumber"))); var participationClassification = JsonConverter.ToEnumeration <ParticipationClassification>(o.GetProperty("participationClassificationId")); var seedNumber = new SeedNumber(JsonConverter.ToInt32(o.GetProperty("seedNumber"))); var teamCodes = o.GetProperty("teamCodes").EnumerateArray().Select(p => new TeamCode(JsonConverter.ToString(p))); var teamNames = o.GetProperty("teamNames").EnumerateArray().Select(p => new TeamName(JsonConverter.ToString(p))); var teamAbbreviatedNames = o.GetProperty("teamAbbreviatedNames").EnumerateArray().Select(p => new TeamAbbreviatedName(JsonConverter.ToString(p))); var playerCodes = o.GetProperty("playerCodes").EnumerateArray().Select(p => new PlayerCode(JsonConverter.ToString(p))); var playerFamilyNames = o.GetProperty("playerFamilyNames").EnumerateArray().Select(p => new PlayerFamilyName(JsonConverter.ToString(p))); var playerFirstNames = o.GetProperty("playerFirstNames").EnumerateArray().Select(p => new PlayerFirstName(JsonConverter.ToString(p))); var points = o.GetProperty("points").EnumerateArray().Select(p => new Point(JsonConverter.ToInt32(p))); var canParticipationDates = o.GetProperty("canParticipationDates").EnumerateArray() .Where(p => JsonConverter.ToBoolean(p.GetProperty("isParticipate"))) .Select(p => new CanParticipationDate(JsonConverter.ToDateTime(p.GetProperty("value")))); var receiptStatus = JsonConverter.ToEnumeration <ReceiptStatus>(o.GetProperty("receiptStatusId")); var entryPlayers = teamCodes.Select((o, i) => new EntryPlayer( o, teamNames.ElementAt(i), teamAbbreviatedNames.ElementAt(i), playerCodes.ElementAt(i), playerFamilyNames.ElementAt(i), playerFirstNames.ElementAt(i), points.ElementAt(i) )); return(new EntryDetail( entryNumber, participationClassification, seedNumber, entryPlayers, canParticipationDates, receiptStatus, UsageFeatures.DrawTable)); }); var dto = new DrawTableRepositoryDto(tournamentId, tennisEventId) { IncludeEntryDetails = true, IncludeQualifyingDrawSettings = true, IncludeMainDrawSettings = true, }; var drawTable = await this.drawTableUseCase.GetDrawTable(dto); drawTable.UpdateEntryDetails(entryDetails); await this.drawTableUseCase.UpdateDrawTable(drawTable); } catch (Exception ex) { return(new HttpResponseMessage(HttpStatusCode.InternalServerError)); } return(new HttpResponseMessage(HttpStatusCode.OK)); }
/// <summary> /// 試合結果を更新します。 /// </summary> /// <param name="gameStatus">試合状況。</param> /// <param name="playerClassificationOfWinner">勝者の選手区分。</param> /// <param name="entryNumberOfWinner">勝者のエントリー番号。</param> /// <param name="gameScore">スコア。</param> /// <returns>勝者が変更されている場合は true。それ以外の場合は false。</returns> public bool UpdateGameResult( GameStatus gameStatus, PlayerClassification playerClassificationOfWinner, EntryNumber entryNumberOfWinner, GameScore gameScore) { var breforeEntryNumberOfWinner = this.EntryNumberOfWinner; this.GameStatus = gameStatus; this.PlayerClassificationOfWinner = playerClassificationOfWinner; this.EntryNumberOfWinner = entryNumberOfWinner; this.GameScore = gameScore; return(breforeEntryNumberOfWinner != entryNumberOfWinner); }
/// <summary> /// 対戦者を更新します。 /// </summary> /// <param name="playerClassification">選手区分。</param> /// <param name="entryNumber">エントリー番号。</param> /// <param name="seedNumber">シード番号。</param> /// <param name="teamCodes">団体登録番号一覧。</param> /// <param name="teamAbbreviatedNames">団体名略称一覧。</param> /// <param name="playerCodes">登録番号一覧。</param> /// <param name="playerNames">氏名一覧。</param> /// <param name="fromGameNumber">一つ前の試合番号。</param> /// <param name="drawNumber">割当先のドロー番号。</param> public void UpdateOpponent( PlayerClassification playerClassification, EntryNumber entryNumber, SeedNumber seedNumber, TeamCodes teamCodes, TeamAbbreviatedNames teamAbbreviatedNames, PlayerCodes playerCodes, PlayerNames playerNames, GameNumber fromGameNumber = null, DrawNumber drawNumber = null) { if (drawNumber == null) { this.Opponents .First(o => !o.IsAssigned) .UpdateOpponent( playerClassification, entryNumber, seedNumber, teamCodes, teamAbbreviatedNames, playerCodes, playerNames, fromGameNumber ); } else { this.Opponents .First(o => o.DrawNumber == drawNumber) .UpdateOpponent( playerClassification, entryNumber, seedNumber, teamCodes, teamAbbreviatedNames, playerCodes, playerNames, fromGameNumber ); } if (this.Opponents.Count(o => o.IsAssigned) == maxOpponentsCount) { this.GameResult.Ready(); } }