public bool SaveGame(NewGameVM newGame) { using (var context = new MarsdbEntities()) { var existingGamesCount = context.Games.Count(g => g.Name.Equals(newGame.Name)); if (existingGamesCount == 0) { var game = new Game { Name = newGame.Name, IsActive = true, Created = DateTime.Now }; context.Games.Add(game); context.SaveChanges(); return(true); } else { return(false); } } }
public bool IsGameMember(string username, int gameId) { using (var context = new MarsdbEntities()) { var count = context.AspNetUsers .Count(u => u.UserName.Equals(username) && u.Games.Count(g => g.Id == gameId) > 0); return(count > 0); } }
public ChangeValueResponse SubstractProd(HandInputVM input, int gameId) { var username = HttpContext.Current.User.Identity.Name; var response = new ChangeValueResponse(); using (var context = new MarsdbEntities()) { var production = context.Productions .Where(p => p.GameId == gameId && p.Owner.Equals(username)) .First(); switch (input.Field) { case "money": production.Money--; response.NewValue = production.Money; break; case "steel": production.Steel--; response.NewValue = production.Steel; break; case "titan": production.Titan--; response.NewValue = production.Titan; break; case "flora": production.Flora--; response.NewValue = production.Flora; break; case "energy": production.Energy--; response.NewValue = production.Energy; break; case "heat": production.Heat--; response.NewValue = production.Heat; break; default: response.IsSuccess = false; return(response); } context.SaveChanges(); response.IsSuccess = true; } return(response); }
public bool Finish(int gameId) { using (var context = new MarsdbEntities()) { var game = context.Games.Where(g => g.Id == gameId).First(); game.IsActive = false; game.Closed = DateTime.Now; context.SaveChanges(); return(true); } }
public bool JoinGame(int gameId) { var username = HttpContext.Current.User.Identity.Name; if (IsGameMember(username, gameId)) { return(true); } using (var context = new MarsdbEntities()) { try { var game = context.Games.Where(g => g.Id == gameId).FirstOrDefault(); game.AspNetUsers.Add( context.AspNetUsers.First(u => u.UserName.Equals(username)) ); context.Productions.Add(new Production() { GameId = gameId, Owner = username, Money = 0, Steel = 0, Titan = 0, Flora = 0, Energy = 0, Heat = 0 }); context.Vaults.Add(new Vault() { GameId = gameId, Owner = username, Money = 20, Steel = 0, Titan = 0, Flora = 0, Energy = 0, Heat = 0 }); context.SaveChanges(); return(true); } catch { return(false); } } }
public ChangeValueResponse UpdateVault(HandInputVM input, int gameId) { var username = HttpContext.Current.User.Identity.Name; var response = new ChangeValueResponse(); using (var context = new MarsdbEntities()) { var vault = context.Vaults .Where(p => p.GameId == gameId && p.Owner.Equals(username)) .First(); switch (input.Field) { case "money": vault.Money = int.Parse(input.Value); break; case "steel": vault.Steel = int.Parse(input.Value); break; case "titan": vault.Titan = int.Parse(input.Value); break; case "flora": vault.Flora = int.Parse(input.Value); break; case "energy": vault.Energy = int.Parse(input.Value); break; case "heat": vault.Heat = int.Parse(input.Value); break; default: response.IsSuccess = false; return(response); } context.SaveChanges(); response.NewValue = int.Parse(input.Value); response.IsSuccess = true; } return(response); }
public HandVM GetUserHand(string username, int gameId) { var hand = new HandVM() { GameId = gameId, Owner = username }; using (var context = new MarsdbEntities()) { hand.Production = context.Productions .Where(p => p.GameId == gameId && p.Owner.Equals(username)) .Select(p => new ProductionVM { Id = p.Id, Money = p.Money, Steel = p.Steel, Titan = p.Titan, Flora = p.Flora, Energy = p.Energy, Heat = p.Heat }).First(); hand.Vault = context.Vaults .Where(p => p.GameId == gameId && p.Owner.Equals(username)) .Select(p => new VaultVM { Id = p.Id, Money = p.Money, Steel = p.Steel, Titan = p.Titan, Flora = p.Flora, Energy = p.Energy, Heat = p.Heat }).First(); var game = context.Games .Where(g => g.Id == gameId) .First(); hand.PlayersList = game.AspNetUsers.Select(u => u.UserName).ToList(); return(hand); } }
public List <GameVM> GetAvailableGames() { using (var context = new MarsdbEntities()) { var list = context.Games .Select(g => new GameVM { Id = g.Id, Name = g.Name, Created = g.Created, Closed = g.Closed, IsActive = g.IsActive, Players = g.AspNetUsers.Count() }).ToList(); return(list); } }