public async Task <LeagueSessionSchedule> AddScheduleAsync(LeagueSessionSchedule newLeagueSessionSchedule, CancellationToken ct = default) { this._dbContext.LeagueSessions.Add(newLeagueSessionSchedule); await this._dbContext.SaveChangesAsync(ct); return(newLeagueSessionSchedule); }
public async Task <bool> UpdateSessionScheduleAsync(LeagueSessionSchedule leagueSessionScheduleToUpdate, CancellationToken ct = default) { if (!await LeagueSessionScheduleExists(leagueSessionScheduleToUpdate.Id, ct)) { return(false); } this._dbContext.LeagueSessions.Update(leagueSessionScheduleToUpdate); await this._dbContext.SaveChangesAsync(ct); return(true); }
public static LeagueSessionScheduleViewModel Convert(LeagueSessionSchedule sessionSchedule) { LeagueSessionScheduleViewModel model = new LeagueSessionScheduleViewModel(); model.Active = sessionSchedule.Active; model.ByeWeeks = sessionSchedule.ByeWeeks; model.GamesDays = GameDayConverter.ConvertList(sessionSchedule.GamesDays); model.Id = sessionSchedule.Id; model.LeagueID = sessionSchedule.LeagueID; model.Matches = MatchConverter.ConvertList(sessionSchedule.Matches); model.NumberOfWeeks = sessionSchedule.NumberOfWeeks; model.SessionEnd = sessionSchedule.SessionEnd; model.SessionStart = sessionSchedule.SessionStart; model.TeamsSessions = sessionSchedule.TeamsSessions == null ? null : TeamSessionConverter.ConvertList(sessionSchedule.TeamsSessions.ToList()); return(model); }
public async Task <bool> UpdateSessionScheduleAsync(LeagueSessionScheduleViewModel updatedSession, CancellationToken ct = default(CancellationToken)) { LeagueSessionSchedule sessionToUpdate = await this._sessionScheduleRepository.GetLeagueSessionScheduleByIdAsync(updatedSession.Id, ct); if (sessionToUpdate == null) { return(false); } sessionToUpdate.Active = updatedSession.Active; sessionToUpdate.ByeWeeks = updatedSession.ByeWeeks; sessionToUpdate.LeagueID = updatedSession.LeagueID ?? sessionToUpdate.LeagueID; sessionToUpdate.NumberOfWeeks = updatedSession.NumberOfWeeks; sessionToUpdate.SessionEnd = updatedSession.SessionEnd; sessionToUpdate.SessionStart = updatedSession.SessionStart; return(await this._sessionScheduleRepository.UpdateSessionScheduleAsync(sessionToUpdate, ct)); }
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)); }