public static void AddLobby(int games_id, int nr_of_players, DateTime start_date, string creator_name) { using (var db = new project_databaseEntities()) { int id; try { id = db.lobbies.Max(lobby => lobby.ID) + 1; } catch (Exception) { id = 1; } lobby newlobby = new lobby(id, games_id, nr_of_players, start_date, creator_name, 1); int inlobbyid; try { inlobbyid = db.in_lobby.Max(in_lobby => in_lobby.pk_id) + 1; } catch (Exception) { inlobbyid = 1; } user usr = db.users.FirstOrDefault(user => user.name == creator_name); in_lobby newinlobby = new in_lobby(inlobbyid, usr.ID, id); ++usr.created_lobbies; db.lobbies.Add(newlobby); db.in_lobby.Add(newinlobby); db.users.Attach(usr); db.Entry(usr).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } }
//-------------------------------------------------------------------------------- //user--DELETE-------------------------------------------------------------------- public static void DeleteUser(int id) { using (var db = new project_databaseEntities()) { user usr = db.users.SingleOrDefault(user => user.ID == id); db.users.Remove(usr); db.SaveChanges(); } }
//user--GET----------------------------------------------------------------------- public static List<user> GetUserByName(string name) { using (var db = new project_databaseEntities()) { List<user> usrl = new List<user>(); user usr = db.users.SingleOrDefault(user => user.name == name); usrl.Add(new user(usr.ID, usr.name, usr.registration_date, usr.created_lobbies, usr.joined_lobbies, usr.canceled_lobbies)); return usrl; } }
//------------------------------------------------------------------------------------- /// <summary> /// Checks if a user identified by username param is in lobby idetified by lobbyid /// </summary> /// <param name="username"></param> /// <param name="lobbyid"></param> /// <returns></returns> public static bool CheckIfInLobby(string username, int lobbyid) { using (var db = new project_databaseEntities()) { lobby lob = db.lobbies.SingleOrDefault(lobby => lobby.ID == lobbyid); user usr = db.users.SingleOrDefault(user => user.name == username); in_lobby newinlobby = db.in_lobby.SingleOrDefault(in_lobby => ((in_lobby.lobbyid == lob.ID) && (in_lobby.userid == usr.ID))); if(newinlobby != null) { return true; } } return false; }
public List<LobbyDTO> GetAllLobbies() { using (var db = new project_databaseEntities()) { List<lobby> listOfLobbies = db.lobbies.ToList(); List<LobbyDTO> allLobbies = new List<LobbyDTO>(); if (listOfLobbies.Capacity > 0) { foreach (var dbItem in listOfLobbies) { allLobbies.Add(new LobbyDTO(dbItem.ID, dbItem.game_id, dbItem.nr_of_players, dbItem.start_date, dbItem.creator_name, dbItem.currently_in_lobby)); } } return allLobbies; } }
//Lobby--DELETE-------------------------------------------------------------------------- public static void DeleteLobby(int id) { using (var db = new project_databaseEntities()) { lobby lob = db.lobbies.SingleOrDefault(lobby => lobby.ID == id); db.lobbies.Remove(lob); foreach (var inlobbyObject in db.in_lobby) { if (inlobbyObject.lobbyid == id) { db.in_lobby.Remove(inlobbyObject); } } db.SaveChanges(); } }
public IdentityUser FindUser(string UserName, string UserPassword) { using (var db = new project_databaseEntities()) { CustomPassword pwd = new CustomPassword(); string pwdHash = pwd.HashPassword(UserPassword); AspNetUser checkLoginData = db.AspNetUsers.SingleOrDefault(user => user.UserName == UserName && user.PasswordHash == pwdHash); if (checkLoginData != null) { IdentityUser usr = new IdentityUser(UserName); usr.PasswordHash = pwdHash; usr.SecurityStamp = checkLoginData.SecurityStamp; return usr; } return null; } }
//-------------------------------------------------------------------------------- //user--ADD----------------------------------------------------------------------- public static void AddUser(string username) { using (var db = new project_databaseEntities()) { try { int userid = db.users.Max(user => user.ID) + 1; user felhasznalo = new user(userid, username, DateTime.Now, 0, 0, 0); db.users.Add(felhasznalo); db.SaveChanges(); } catch (System.InvalidOperationException) { user felhasznalo = new user(1, username, DateTime.Now, 0, 0, 0); db.users.Add(felhasznalo); db.SaveChanges(); } } }
//------------------------------------------------------------------------------------- //exceptiont lekezelni - mi tortenik, ha a keresett id nem letezik //Lobby--GET---------------------------------------------------------------------------- public static List<lobby> GetLobbyById(int id) { List<lobby> Lobbies = new List<lobby>(); using (var db = new project_databaseEntities()) { try { lobby lob = db.lobbies.SingleOrDefault(lobby => lobby.ID == id); Lobbies.Add(new lobby(lob.ID, lob.game_id, lob.nr_of_players, lob.start_date, lob.creator_name, lob.currently_in_lobby)); } catch(Exception ex) { Console.WriteLine(ex); } } return Lobbies; }
//------------------------------------------------------------------------------------- //Lobby--LEAVE-------------------------------------------------------------------------- public static void LeaveLobby(string username, int lobbyid) { using (var db = new project_databaseEntities()) { lobby lob = db.lobbies.SingleOrDefault(lobby => lobby.ID == lobbyid); user usr = db.users.SingleOrDefault(user => user.name == username); in_lobby newinlobby = db.in_lobby.SingleOrDefault(in_lobby => ((in_lobby.lobbyid == lob.ID) && (in_lobby.userid == usr.ID))); if (lob.currently_in_lobby < 2) { db.lobbies.Remove(lob); foreach (var inlobbyObject in db.in_lobby) { if (inlobbyObject.lobbyid == lob.ID) { db.in_lobby.Remove(inlobbyObject); } } db.SaveChanges(); } else { --lob.currently_in_lobby; db.lobbies.Attach(lob); db.Entry(lob).State = System.Data.Entity.EntityState.Modified; db.in_lobby.Remove(newinlobby); db.SaveChanges(); } } }
//Lobby--JOIN-------------------------------------------------------------------------- public static void JoinLobby(string username, int lobbyid) { using (var db = new project_databaseEntities()) { lobby lobbyToJoin = db.lobbies.SingleOrDefault(lobby => lobby.ID == lobbyid); game gameOfLobby = db.games.SingleOrDefault(game => game.ID == lobbyToJoin.game_id); user usr = db.users.SingleOrDefault(user => user.name == username); if (gameOfLobby.max_players > lobbyToJoin.currently_in_lobby) { int pk_id = db.in_lobby.Max(in_lobby => in_lobby.pk_id) + 1; in_lobby newinlobby = new in_lobby(pk_id, usr.ID, lobbyid); db.in_lobby.Add(newinlobby); lobby lob = db.lobbies.SingleOrDefault(lobby => lobby.ID == lobbyid); ++lob.currently_in_lobby; db.lobbies.Attach(lob); db.Entry(lob).State = System.Data.Entity.EntityState.Modified; ++usr.joined_lobbies; db.users.Attach(usr); db.Entry(usr).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } } }