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(); }
//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); } }
public void Load(Operations.Operations operations) => this.operations = operations;