Exemplo n.º 1
0
        public static void Execute(Guid id, EditAccountRequest request)
        {
            var commands = new List <DAL.Models.Player>();

            request.Command.ForEach(x =>
            {
                var player = new DAL.Models.Player
                {
                    MiddleName = x.MiddleName,
                    Name       = x.Name,
                    Number     = x.Number,
                    PlayerId   = x.PlayerId,
                    Surname    = x.Surname
                };

                commands.Add(player);
            });

            var account = new DAL.Models.EditAccountRequest
            {
                Command = commands,
                Email   = request.Email,
                Photo   = request.Photo,
                Name    = request.Name,
                Phone   = request.Phone
            };

            DbHelper.EditAccountInfo(id, account);
        }
        internal PlayerDTO NewPlayer(PlayerDTO newPlayer)
        {
            var tempPlayer = new DAL.Models.Player
            {
                Name         = newPlayer.Name,
                Email        = newPlayer.Email,
                Age          = newPlayer.Age,
                Gender       = newPlayer.Gender,
                Username     = newPlayer.GamerTag,
                IsActive     = newPlayer.IsActive,
                PasswordHash = PasswordHelper.Create(newPlayer.Password)
            };

            _dbContext.Players.Add(tempPlayer);
            _dbContext.SaveChanges();
            newPlayer.Id = tempPlayer.Id;
            return(newPlayer);
        }
        public async Task <IHttpActionResult> ScoreAsync(int id, ScoreRequest request)
        {
            DAL.Models.Match match = await UnitOfWork.GetMatchRepository().SelectByIdAsync(id)
                                     ?? throw new ActionCannotBeExecutedException(ExceptionMessages.MatchNotFound);

            if (!match.Players.Any(p => p.Id != request.AuthorId))
            {
                throw new ActionCannotBeExecutedException(ExceptionMessages.PlayerNotFound + $" In match by Id : {id} UserId : {request.AuthorId}");
            }

            IPlayerRepository playerRepo = UnitOfWork.GetPlayerRepository();

            DAL.Models.Player author = await playerRepo.SelectByIdAsync(request.AuthorId)
                                       ?? throw new ActionCannotBeExecutedException(ExceptionMessages.PlayerNotFound);

            DAL.Models.Player assistant = null;

            if (request.AssistantId.HasValue)
            {
                if (!match.Players.Any(p => p.Id != request.AssistantId.Value))
                {
                    throw new ActionCannotBeExecutedException(ExceptionMessages.PlayerNotFound + $" In match by Id : {id} UserId : {request.AuthorId}");
                }
                assistant = await playerRepo.SelectByIdAsync(request.AssistantId.Value)
                            ?? throw new ActionCannotBeExecutedException(ExceptionMessages.PlayerNotFound);

                if (assistant.TeamId != author.TeamId)
                {
                    throw new ActionCannotBeExecutedException(ExceptionMessages.TeamsMustBeSame);
                }
            }

            match.Goals.Add(new DAL.Models.Goal
            {
                Author    = author,
                Assistant = assistant,
                GoalDt    = DateTimeOffset.Now,
                Team      = author.Team
            });
            await UnitOfWork.SaveChangesAsync();

            return(Ok());
        }