示例#1
0
 public Machine(IContext context)
 {
     this.context = context;
     stack        = new Stack <Frame>();
     operations   = new Operations.Operations();
     running      = false;
     table        = new Lazy <TableMaker>(() =>
                                          new TableMaker(("Address", Justification.Left), ("Operation", Justification.Left), ("Stack", Justification.Left)));
     debugState  = DebugState.Starting;
     globalFrame = new GlobalFrame();
 }
示例#2
0
        //Método que procesa los request. Este método debe de existir para poder recibir
        //las solicitudes desde los clientes.
        void IHttpHandler.ProcessRequest(HttpContext context)
        {
            try
            {
                string url = Convert.ToString(context.Request.Url);
                string request_instance = url.Split('/').Last <String>().Split('?')[0]; //instance de la solicitud, ya sea empleado, sucursal, etc.
                connString = Properties.Settings.Default.ConnectionString;
                operations = new Operations.Operations(connString);                     //estas variables se deben inicializar acá para que se realice
                errHandler = new ErrorHandler.ErrorHandler();                           //cada vez que el cliente hace una solicitud

                //Handling CRUD

                switch (context.Request.HttpMethod)
                {
                case "GET":
                {
                    string isDelete = context.Request["Delete"];    //determina si existe el parámetro delete
                    if (isDelete == null)                           // ya que no hay soporte a delete en chrome
                    {
                        READ(context, request_instance);            //si no es delete, haga el read
                        break;
                    }
                    else if (isDelete == "1")                        //si es delete, hace el borrado
                    {
                        DELETE(context, request_instance);
                        break;
                    }
                    break;
                }

                case "POST":
                {
                    //Perform CREATE Operation
                    string isPut = context.Request["Put"];        //determina si existe el parámetro put
                    if (isPut == null)                            //debido a la falta de soporte por parte de Chrome
                    {
                        CREATE(context, request_instance);        //hacer create porque es post
                        break;
                    }
                    else if (isPut == "1")
                    {
                        UPDATE(context, request_instance);         //hacer update porque es put
                        break;
                    }
                    break;
                }

                //Casos legacy, ya que el soporte en chrome no existe para delete y put.
                //Estos metodos funcionan en Internet Explorer.
                //case "PUT":
                //Perform UPDATE Operation
                //UPDATE(context, request_instance);
                //break;
                // case "DELETE":
                //Perform DELETE Operation
                //DELETE(context, request_instance);
                //break;
                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                errHandler.ErrorMessage = ex.Message.ToString();
                context.Response.Write(errHandler.ErrorMessage);
            }
        }
示例#3
0
 public void Load(Operations.Operations operations) => this.operations = operations;