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)); }
public IActionResult addNewPlayer(int IdTeam, NewPlayerDTO player) { try { return(Ok(context.GetService <IAddNewPlayer>().addToTeam(IdTeam, player))); } catch (MyException e) { return(NotFound(e.Message)); }; }
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); }
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); } }