Exemple #1
0
 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;
 }
Exemple #2
0
        /// <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();
            }
        }
Exemple #3
0
        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));
        }
Exemple #6
0
        /// <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);
        }
Exemple #7
0
        /// <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();
            }
        }