Пример #1
0
 public async Task CreateTactic([FromBody] CreateTacticDto tactic)
 {
     await tacticAppService.CreateTacticAsync(tactic);
 }
Пример #2
0
        public async Task CreateTacticAsync(CreateTacticDto dto)
        {
            var tactic = new Tactic
            {
                ArenaPart  = dto.ArenaPart,
                Name       = dto.Name,
                PlayerSize = dto.PlayerSize,
                SportId    = dto.SportId,
                UserId     = dto.UserId,
                Ball       = new ExistingBall
                {
                    IsVisible = dto.Ball.IsVisible,
                    Size      = dto.Ball.Size,
                    ColorId   = dto.Ball.ColorId
                }
            };

            var frame = new Frame
            {
                Order  = 1,
                Tactic = tactic
            };

            if (dto.Ball.IsVisible)
            {
                var firstFrameBall = new Ball
                {
                    Core     = tactic.Ball,
                    Position = new Position
                    {
                        X = dto.Ball.Position.X,
                        Y = dto.Ball.Position.Y
                    }
                };

                frame.Ball = firstFrameBall;
            }

            var ownTeam = new Team
            {
                PlayerColorId     = dto.OwnTeam.ColorId,
                GoalKeeperColorId = dto.OwnTeam.GoalkeeperColorId,
                IsGoalEmpty       = dto.OwnTeam.IsGoalEmpty,
                NumberOfPlayers   = dto.OwnTeam.NumberOfPlayers,
            };

            for (int i = 0; i < dto.OwnTeam.NumberOfPlayers; i++)
            {
                var player = new ExistingPlayer
                {
                    Team   = ownTeam,
                    Number = dto.OwnTeam.Players[i].Number
                };

                var firtsFramePlayer = new Player
                {
                    Core     = player,
                    Frame    = frame,
                    Position = new Position
                    {
                        X = dto.OwnTeam.Players[i].Position.X,
                        Y = dto.OwnTeam.Players[i].Position.Y
                    }
                };
            }

            var opponentTeam = new Team
            {
                PlayerColorId     = dto.OpponentTeam.ColorId,
                GoalKeeperColorId = dto.OpponentTeam.GoalkeeperColorId,
                IsGoalEmpty       = dto.OpponentTeam.IsGoalEmpty,
                NumberOfPlayers   = dto.OpponentTeam.NumberOfPlayers,
            };

            for (int i = 0; i < dto.OpponentTeam.NumberOfPlayers; i++)
            {
                var player = new ExistingPlayer
                {
                    Team   = opponentTeam,
                    Number = dto.OpponentTeam.Players[i].Number
                };

                var firtsFramePlayer = new Player
                {
                    Core     = player,
                    Frame    = frame,
                    Position = new Position
                    {
                        X = dto.OpponentTeam.Players[i].Position.X,
                        Y = dto.OpponentTeam.Players[i].Position.Y
                    }
                };
            }

            context.Tactics.Add(tactic);
            await context.SaveChangesAsync();
        }