public static TeamSessionViewModel Convert(TeamSession teamSession) { TeamSessionViewModel model = new TeamSessionViewModel() { TeamId = teamSession.TeamId, Team = teamSession.Team == null ? null : TeamConverter.Convert(teamSession.Team), LeagueSessionScheduleId = teamSession.LeagueSessionScheduleId }; return(model); }
public async Task <bool> PublishSessionsSchedulesAsync(List <LeagueSessionScheduleViewModel> newLeagueSessionsSchedules, CancellationToken ct = default(CancellationToken)) { List <LeagueSessionSchedule> leagueSessionOperations = new List <LeagueSessionSchedule>(); foreach (LeagueSessionScheduleViewModel newSchedule in newLeagueSessionsSchedules) { LeagueSessionSchedule leagueSessionSchedule = new LeagueSessionSchedule() { Active = newSchedule.Active, LeagueID = newSchedule.LeagueID, ByeWeeks = newSchedule.ByeWeeks, NumberOfWeeks = newSchedule.NumberOfWeeks, SessionStart = newSchedule.SessionStart, SessionEnd = newSchedule.SessionEnd }; // create game day entry for all configured game days foreach (GameDayViewModel gameDay in newSchedule.GamesDays) { GameDay newGameDay = new GameDay() { GamesDay = gameDay.GamesDay }; // create game time entry for every game day foreach (GameTimeViewModel gameTime in gameDay.GamesTimes) { GameTime newGameTime = new GameTime() { GamesTime = DateTimeOffset.FromUnixTimeSeconds(gameTime.GamesTime).DateTime.ToLocalTime(), }; newGameDay.GamesTimes.Add(newGameTime); } leagueSessionSchedule.GamesDays.Add(newGameDay); } // update teams sessions foreach (TeamSessionViewModel teamSession in newSchedule.TeamsSessions) { // retrieve the team with the corresponding id Team team = await this._teamRepository.GetByIdAsync(teamSession.TeamId, ct); if (team != null) { TeamSession newTeamSession = new TeamSession() { Team = team, LeagueSessionSchedule = leagueSessionSchedule }; leagueSessionSchedule.TeamsSessions.Add(newTeamSession); } } // update matches for this session foreach (MatchViewModel match in newSchedule.Matches) { // if match DateTime is not set do not add it to the database if (match.DateTime != 0) { Match newMatch = new Match() { DateTime = match.DateTime, HomeTeamId = match.HomeTeamId, AwayTeamId = match.AwayTeamId, LeagueID = match.LeagueID }; MatchResult newMatchResult = new MatchResult() { LeagueId = match.LeagueID, HomeTeamId = match.HomeTeamId, AwayTeamId = match.AwayTeamId }; newMatch.MatchResult = newMatchResult; leagueSessionSchedule.Matches.Add(newMatch); } } leagueSessionOperations.Add(await this._sessionScheduleRepository.AddScheduleAsync(leagueSessionSchedule, ct)); } // ensure all leagueSessionOperations did not return any null values return(leagueSessionOperations.All(op => op != null)); }