public GameDto GetGameById(Guid gameId) { GameDto gameDto; using (var context = new BowlingScoreboardDbContextFactory().CreateDbContext()) { var game = context.Games .Include(g => g.Players) .ThenInclude(p => p.Rounds) .ThenInclude(r => r.RoundType) .SingleOrDefault(g => g.Id == gameId); gameDto = _mapper.Map <GameDto>(game); gameDto.Players .ToList() .ForEach(p => { p.Rounds.ToList().ForEach(r => r.GameId = gameId); p.Rounds = p.Rounds.OrderBy(r => r.Number); }); } return(gameDto); }
public IEnumerable <PlayerDto> GetPlayersByGameIdOrderedByPlayerOrder(Guid gameId) { IEnumerable <PlayerDto> playersDto; using (var context = new BowlingScoreboardDbContextFactory().CreateDbContext()) { var players = context.Players .Where(p => p.GameId == gameId) .OrderBy(p => p.PlayOrder) .ToList(); playersDto = _mapper.Map <IEnumerable <PlayerDto> >(players); } return(playersDto); }
public virtual RoundTypeDto GetRoundTypeByName(string roundTypeName) { RoundTypeDto roundTypeDto; using (var context = new BowlingScoreboardDbContextFactory().CreateDbContext()) { var roundType = context .RoundTypes .SingleOrDefault(rt => rt.Name == roundTypeName); roundTypeDto = _mapper.Map <RoundTypeDto>(roundType); } return(roundTypeDto); }
public virtual IEnumerable <RoundDto> GetRoundsByPlayerId(Guid playerId) { IEnumerable <RoundDto> roundDtos; using (var context = new BowlingScoreboardDbContextFactory().CreateDbContext()) { var rounds = context.Rounds .Include(r => r.Player) .Where(r => r.Player.Id == playerId) .ToList(); roundDtos = _mapper.Map <IEnumerable <RoundDto> >(rounds); } return(roundDtos); }
public IEnumerable <PlayerDto> GetPlayersByRoundNumberOrderedByPlayOrder(Guid gameId, int roundNumber) { IEnumerable <PlayerDto> playersDto; using (var context = new BowlingScoreboardDbContextFactory().CreateDbContext()) { var players = context.Rounds .Include(r => r.Player) .Where(r => r.Number == roundNumber && r.Player.GameId == gameId) .Select(r => r.Player) .OrderBy(p => p.PlayOrder) .ToList(); playersDto = _mapper.Map <IEnumerable <PlayerDto> >(players); } return(playersDto); }
public int GetCurrentRoundNumber(Guid gameId) { int currentRoundNumber; using (var context = new BowlingScoreboardDbContextFactory().CreateDbContext()) { var allPlayersRoundsCount = context.Players .Where(p => p.GameId == gameId) .Select(p => p.Rounds.Count) .ToList(); var lastRoundNumber = allPlayersRoundsCount.Min(); currentRoundNumber = lastRoundNumber == 10 ? lastRoundNumber : lastRoundNumber + 1; } return(currentRoundNumber); }
public RoundDto CreateRound(RoundDto round) { RoundDto roundDto; using (var context = new BowlingScoreboardDbContextFactory().CreateDbContext()) { var roundEntity = _mapper.Map <Round>(round); context.Rounds.Add(roundEntity); context.SaveChanges(); roundDto = _mapper.Map <RoundDto>(roundEntity); roundDto.GameId = round.GameId; roundDto.PlayerId = round.PlayerId; } return(roundDto); }
public GameDto CreateGame(int lineNumber, IEnumerable <PlayerDto> players) { GameDto gameDto; using (var context = new BowlingScoreboardDbContextFactory().CreateDbContext()) { var lineId = context.Lines.SingleOrDefault(l => l.Number == lineNumber).Id; var playerEntities = _mapper.Map <ICollection <Player> >(players); var game = new Game() { LineId = lineId, Players = playerEntities }; context.Games.Add(game); context.SaveChanges(); gameDto = _mapper.Map <GameDto>(game); } return(gameDto); }