public IHttpAction Execute(string str) { try { Request = new Request(str); Parameters = GetParameters(); Controller = ControllerRegistry.Get(Request.Uri.Controller); try { ControllerMethod = GetControllerMethod(); } catch (Exception) { return(new MethodNotAllowed()); } if (ControllerMethod.GetParameters().Length > 0 && Request.Body.Length > 0) { var serializer = SerializerRegistry.Get(Request.GetField("Content-Type")); var bodyType = ControllerMethod.GetParameters().Last().ParameterType; Parameters[Parameters.Count - 1] = serializer.Deserialize((string)Parameters[Parameters.Count - 1], bodyType); } return((IHttpAction)ControllerMethod.Invoke(Controller, Request.Parameters)); } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(new BadRequest()); } }
internal static void Initialize() { ledControllers = new Dictionary<byte, ConstructorInfo>(); foreach (Type type in GetSubtypesInNamespace(Assembly.GetExecutingAssembly(), "CorsairLinkPlusPlus.Driver.CorsairLink.Controller.LED")) { ILEDController tempInstance = ConstructObjectForInspection(type); ledControllers.Add(tempInstance.GetLEDModernControllerID(), type.GetConstructor(new Type[0])); ControllerRegistry.Get(tempInstance.Name, type); } }
protected void Application_Start() { RouteRegistry.RegisterRoutes(RouteTable.Routes); ViewEngineRegistry.SetViewEngines(); if (!WindsorContainerSetup.InitializeContainer()) { return; } JoinedRegistry.Register(WindsorContainerSetup.Container); ControllerRegistry.Register(WindsorContainerSetup.Container); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } Order order = new Order() { Customer = new Customer() { Id = "cus123", Address = "1 vegas way", Name = "Anivdelarev" }, Id = "ord123", LineItems = { new LineItem() { ProductId = "prod1", Price = 10.00m, Quantity = 10, ExtendedPrice = 100.00m }, new LineItem() { ProductId = "prod2", Price = 12.00m, Quantity = 10, ExtendedPrice = 120.00m } }, SubTotal = 220.00m, NewLineItem = new LineItem() { ProductId = "", Price = 0.00m, Quantity = 1 } }; OrderEntrySample view = new OrderEntrySample(order, new OrderController()); var htmlConverter = new HtmlConverter(); var url = ControllerRegistry.GetControllerUrl <Order>(OrderController.AddItem); app.Run(async(context) => { if (context.Request.Path == "/") { await context.Response.WriteAsync(htmlConverter.Convert(view)); } else { await context.Response.WriteAsync(ControllerRegistry.ExecuteController(context.Request.Path, context.Request.Body)); } }); }
public override void Call() { IController controller = ControllerRegistry.Get(GetRequiredArgument <string>("Controller")).New(); //Set thermistors if (controller is ITemperatureDependantController) { ((ITemperatureDependantController)controller).SetThermistor((IThermistor)RootDevice.FindDeviceByPath(GetRequiredArgument <string>("Thermistor"))); } //Set fixed values if (controller is IFixedNumberController) { ((IFixedNumberController)controller).Value = GetRequiredArgument <double>("Value"); } if (controller is IFixedColorController) { ((IFixedColorController)controller).Value = GetRequiredArgument <Color>("Value"); } if (controller is IFixedColorCycleController) { ((IFixedColorCycleController)controller).Value = new List <Color>(GetRequiredArgument <IEnumerable <Color> >("Value")).ToArray(); } //Set curves if (controller is ICurveColorController) { ((ICurveColorController)controller).Value = GetRequiredArgument <ControlCurve <double, Color> >("Value"); } if (controller is ICurveNumberController) { ((ICurveNumberController)controller).Value = GetRequiredArgument <ControlCurve <double, double> >("Value"); } ((IControllableSensor)Device).Controller = controller; }