public static Game JoinGame(Join join) { using (DatabaseLayer db = new DatabaseLayer()) { Game game = db.Games.First((g) => g.Id == join.GameId); if (game.User1 == join.UserId || game.User2 == join.UserId || game.User3 == join.UserId || game.User4 == join.UserId) { return(game); } if (Guid.Empty == game.User2) { game.User2 = join.UserId; } else if (Guid.Empty == game.User3) { game.User3 = join.UserId; } else if (Guid.Empty == game.User4) { game.User4 = join.UserId; } else { throw new IndexOutOfRangeException(); } db.SaveChanges(); return(game); } }
public static User AddUser(User user) { using (DatabaseLayer db = new DatabaseLayer()) { db.Add(user); db.SaveChanges(); } return(user); }
public static Land SaveLand(Land land) { using (DatabaseLayer db = new DatabaseLayer()) { db.Add(land); db.SaveChanges(); } return(land); }
public static GameStatus GetGameStatus(Guid id) { using (DatabaseLayer db = new DatabaseLayer()) { var gameStatus = db.GameLogs.FirstOrDefault((l) => l.Game == id); if (gameStatus == null) { gameStatus = new GameStatus(id); } db.Add(gameStatus); db.SaveChanges(); return(gameStatus); } }
public static IGame CreateGame(Guid id) { using (DatabaseLayer db = new DatabaseLayer()) { Island island = new Island(); Land land = island.GetLand(); DBLMethods.SaveLand(land); Game game = new Game() { Id = Guid.NewGuid(), User1 = id, Admin = id, Active = true, LandId = land.Id }; db.Add(game); db.SaveChanges(); return(game); } }
public static List <IGeks> GetCurrentBoard(Guid id) { using (DatabaseLayer db = new DatabaseLayer()) { var land = db.Lands.First((l) => l.Id == id); List <IGeks> gridList = new List <IGeks>(); for (int i = 0, n = 0; i < 19; i++) { if (land.Geks[i] != (int)EGeks.desert) { gridList.Add(GeksFabrik.GetGeks(land.Geks[i], IslandGrid.GetGreedItem(i), land.GeksToken[n])); n++; } else { gridList.Add(GeksFabrik.GetGeks(land.Geks[i], IslandGrid.GetGreedItem(i), 7)); } } return(gridList); } }