private void CreateMatchPlayed(OrganizeMatchDto organizeMatchDto, Matchday matchday, out Team homeTeam, out Team awayTeam, out MatchPlayed matchPlayed) { homeTeam = new Team() { Name = organizeMatchDto.HomeTeamName, Matchday = matchday }; awayTeam = new Team() { Name = organizeMatchDto.AwayTeamName, Matchday = matchday }; DataContext.Teams.Add(homeTeam); DataContext.Teams.Add(awayTeam); DataContext.SaveChanges(); matchPlayed = new MatchPlayed() { HomeGoals = organizeMatchDto.HomeGoals, AwayGoals = organizeMatchDto.AwayGoals, DatePlayed = matchday.DatePlaying, Home = homeTeam, Away = awayTeam, }; DataContext.MatchPlayeds.Add(matchPlayed); DataContext.SaveChanges(); }
private void AddAwayTeamPlayers(OrganizeMatchDto organizeMatchDto, Team awayTeam, MatchPlayed matchPlayed) { foreach (var player in organizeMatchDto.AwayTeamMembers) { var teamMember = new TeamMember() { Position = player.Position ?? Position.UKNWN, Team = awayTeam, UserId = player.UserId, }; var teamMemberStatistics = new TeamMemberStatistic() { Goals = player.Statistics.Goals, Assists = player.Statistics.Assists, MinutesPlayed = player.Statistics.MinutesPlayed, Rating = player.Statistics.Rating, Team = awayTeam, MatchPlayed = matchPlayed, }; DataContext.TeamMembers.Add(teamMember); DataContext.SaveChanges(); teamMemberStatistics.TeamMember = teamMember; DataContext.TeamMemberStatistics.Add(teamMemberStatistics); DataContext.SaveChanges(); teamMember.TeamMemberStatistics = teamMemberStatistics; DataContext.SaveChanges(); } }
public async Task <KeyValuePair <bool, string> > OrganizeMatchPlayed(OrganizeMatchDto organizeMatchDto) { var matchday = await DataContext.Matchdays.FirstOrDefaultAsync(x => x.Id == organizeMatchDto.MatchdayId); if (matchday == null) { return(new KeyValuePair <bool, string>(false, "Matchday with specified id doesn't exist")); } if (matchday.DatePlaying >= DateTime.Now) { return(new KeyValuePair <bool, string>(false, "Matchday has not passed, so you are not able to add result")); } Team homeTeam, awayTeam; MatchPlayed matchPlayed; CreateMatchPlayed(organizeMatchDto, matchday, out homeTeam, out awayTeam, out matchPlayed); AddHomeTeamPlayers(organizeMatchDto, homeTeam, matchPlayed); AddAwayTeamPlayers(organizeMatchDto, awayTeam, matchPlayed); return(new KeyValuePair <bool, string>(true, "Match played successfully created")); }
public async Task <KeyValuePair <bool, string> > OrganizeMatch(OrganizeMatchDto organizeMatchDto) { return(await _unitOfWork.Matchdays.OrganizeMatchPlayed(organizeMatchDto)); }
public async Task <IActionResult> OrganizeMatch(OrganizeMatchDto organizeMatchDto) { return(Ok(await _matchesService.OrganizeMatch(organizeMatchDto))); }