/// <summary> /// This is the event handler for the Root Console update event. /// Here the keypresses are handled and first a check for either mpengine or spengine meaning /// all keys are sent to the respective engine /// If no engine is running we can traverse the menus using keys. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void rootConsole_Update(object sender, UpdateEventArgs e) { if (Menu.currMenu == "main") { switch (Menu.mainUpdate(_rootConsole)) { case 1: _spEngine = new SPEngine(_rootConsole); Menu.currMenu = "game"; break; case 2: Menu.currMenu = "multi"; break; } } if (Menu.currMenu == "multi") { switch (Menu.multiUpdate(_rootConsole)) { case 1: break; case 2: Menu.currMenu = "enterDets"; Menu.name = ""; break; } } if (Menu.currMenu == "enterDets") { switch (Menu.enterDetsUpdate(_rootConsole)) { case 1: _lobby = new MPLobby(_rootConsole, Menu.name); Menu.currMenu = "game"; break; case 0: break; } } if (Menu.currMenu == "game") { var keypress = _rootConsole.Keyboard.GetKeyPress(); if (keypress != null) { _spEngine?.HandleKey(keypress); _mpEngine?.HandleKey(keypress); } var m = _lobby?.Update(keypress); if (m == 1) { _mpEngine = new MPEngine(_rootConsole, Menu.name, _lobby?.servers[_lobby.sellist[_lobby.curIndex]]); _lobby.destroy(); _lobby = null; } _mpEngine?.Update(); } }
public void Execute(ConnectionDB.SPType sPType, SPEngine sp) { if (sPType.Equals(ConnectionDB.SPType.InsertUpdateDelete)) { Response = ExecuteBool(sp); } else if (sPType.Equals(ConnectionDB.SPType.Select)) { TableResponse = ExecuteDataT(sp); } }
/// <summary> /// Execute the Stored Procedure with the defalt connection /// This method is for insert, update and delete db operations /// </summary> /// <param name="sp">Stored Procedure</param> public Boolean ExecuteBool(SPEngine lst) { SqlCommand cmd; IDbConnection connection = ConnectionDB.Conection(); connection.Open(); try { cmd = new SqlCommand(lst.Name, connection as SqlConnection); cmd.CommandType = CommandType.StoredProcedure; if (lst.Parameters != null) { foreach (Parameter parametro in lst.Parameters) { if (parametro.Direction == ParameterDirection.Input) { cmd.Parameters.AddWithValue(parametro.Name, parametro.Value); } else if (parametro.Direction == ParameterDirection.Output) { cmd.Parameters.Add(parametro.Name, parametro.DataType, parametro.Size).Direction = ParameterDirection.Output; } } Response = Convert.ToBoolean(cmd.ExecuteNonQuery()); for (int i = 0; i < lst.Parameters.Count; i++) { if (lst.Parameters[i].Direction == ParameterDirection.Input) { lst.Parameters[i].Value = cmd.Parameters[i].Value.ToString(); } } } else { //Debería existir un mensaje de error Response = false; } } catch (Exception ex) { Response = false; throw ex; } finally { connection.Close(); } return(Response); }
/// <summary> /// Execute a consult Store Procedure with the default connection /// </summary> /// <param name="sp">Store Procedure</param> /// <param name="lst">Parameters List</param> /// <returns>The result content</returns> public DataTable ExecuteDataT(SPEngine lst) { DataTable tableResult = new DataTable(); //El adapter es como una carcasa mas grande que puede contener multiples SqlCommands SqlCommand _Command; SqlDataReader reader; using (IDbConnection connection = ConnectionDB.Conection()) { connection.Open(); try { _Command = new SqlCommand(lst.Name, connection as SqlConnection); _Command.CommandText = lst.Name; _Command.CommandType = CommandType.StoredProcedure; //Si existe lista de parámetros //Si no existe if (lst.Parameters != null) { foreach (Parameter item in lst.Parameters) { _Command.Parameters.AddWithValue(item.Name, item.Value); } } else { _Command.Parameters.Clear(); } //El reader guarda el resultado del comando ejecutado reader = _Command.ExecuteReader(); if (reader.HasRows) { tableResult.Load(reader); } } catch (Exception ex) { throw ex; } } return(tableResult); }