コード例 #1
0
        /// <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();
            }
        }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }