示例#1
0
        public async Task <GetPlayerDTO> CreateOrUpdatePlayer(NewPlayerDTO newPlayer)
        {
            ClaimsPrincipal principal = Request.GetRequestContext().Principal as ClaimsPrincipal;
            var             userName  = ClaimsPrincipal.Current.Identity.Name;

            return(await playerService.CreateOrUpdatePlayer(newPlayer, userName));
        }
示例#2
0
 public IActionResult addNewPlayer(int IdTeam, NewPlayerDTO player)
 {
     try
     {
         return(Ok(context.GetService <IAddNewPlayer>().addToTeam(IdTeam, player)));
     }
     catch (MyException e) { return(NotFound(e.Message)); };
 }
示例#3
0
        public Player_Team addToTeam(int IdTeam, NewPlayerDTO player)
        {
            Team team = context.Teams.Find(IdTeam);

            if (team == null)
            {
                throw new MyException("Brak takiej druzyny");
            }

            Player databasePlayer = (from plr in context.Players
                                     where plr.FirstName == player.firstName && plr.LastName == player.lastName && plr.DateOfBirth.Equals(player.birthdate)
                                     select new Player
            {
                IdPlayer = plr.IdPlayer,
                DateOfBirth = plr.DateOfBirth,
                FirstName = plr.FirstName,
                LastName = plr.LastName
            }).First();

            if (databasePlayer == null)
            {
                throw new MyException("Gracza nie ma w bazie");
            }
            if ((DateTime.Today.Year - databasePlayer.DateOfBirth.Year) > team.MaxAge)
            {
                throw new MyException("Gracz za stary");
            }

            if (context.Player_Teams.Any(item => item.IdPlayer == databasePlayer.IdPlayer))
            {
                throw new MyException("gracz juz jest przypisany");
            }

            Player_Team player_team = new Player_Team()
            {
                Player     = databasePlayer,
                Team       = team,
                NumOfShirt = player.numOnShirt,
                Comment    = player.Comment
            };

            context.Player_Teams.Add(player_team);
            context.SaveChanges();
            return(player_team);
        }
示例#4
0
        public async Task <GetPlayerDTO> CreateOrUpdatePlayer(NewPlayerDTO newPlayer, string userName)
        {
            try
            {
                User user = await _userManager.FindByNameAsync(userName);

                Player player = Mapper.Map <Player>(newPlayer);
                if (player.Id == 0)
                {
                    player.IsActived     = false;
                    player.CreatedUserId = user.Id;
                    player.CreatedDate   = DateTime.UtcNow;
                    player.UpdatedUserId = user.Id;
                    player.UpdatedDate   = DateTime.UtcNow;

                    _repository.Insert(player);
                }
                else
                {
                    player.UpdatedUserId = user.Id;
                    player.UpdatedDate   = DateTime.UtcNow;

                    _repository.Update(player);
                }


                var tagRepository = _repository.GetRepository <Tag>();

                var tag = tagRepository.Queryable().FirstOrDefault(t => t.Slug == player.Slug);

                if (tag == null)
                {
                    tag = new Tag
                    {
                        Avatar    = player.Avatar,
                        FullName  = player.FullName,
                        ShortName = player.ShortName,
                        NickName  = player.NickName,
                        Slug      = player.Slug,
                        TagType   = TagType.Player
                    };

                    tagRepository.Insert(tag);
                }
                else
                {
                    tag.Avatar    = player.Avatar;
                    tag.FullName  = player.FullName;
                    tag.ShortName = player.ShortName;
                    tag.NickName  = player.NickName;
                    tag.Slug      = player.Slug;
                    tag.TagType   = TagType.Player;

                    tagRepository.Update(tag);
                }

                await _unitOfWork.SaveChangesAsync();

                return(Mapper.Map <GetPlayerDTO>(player));
            }
            catch (Exception ex)
            {
                throw new Exception(ResponseCodeString.PlayerCreate_Error, ex.InnerException);
            }
        }