public async Task CreateTactic([FromBody] CreateTacticDto tactic) { await tacticAppService.CreateTacticAsync(tactic); }
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(); }