public HeaterServiceModule()
        {
            var heaterService = new StateFullBoilerHeaterService(
                new BoilerHeaterService(new ServoMotorService())
                );

            Get["api/v1/heater/info"] = parameters =>
            {
                var model = new
                {
                    status = heaterService.IsOn() ? "on" : "off",
                    level = heaterService.GetLevel()
                };

                return Response.AsJson(model);
            };

            Get["api/v1/heater/powerswitch"] = parameters => {
                var model = new
                {
                    status = heaterService.IsOn() ? "on" : "off",
                };

                return Response.AsJson(model);
            };

            Post["api/v1/heater/powerswitch"] = parameters =>
            {
                var model = new { status = (string)this.Context.Request.Form.status };
                switch (model.status)
                {
                    case "on":
                        heaterService.TurnOn();
                        break;
                    case "off":
                        heaterService.TurnOff();
                        break;
                    default:
                        return Response.AsJson(model, HttpStatusCode.BadRequest);
                }
                return Response.AsJson(model);
            };

            Get["api/v1/heater/level"] = parameters =>
            {
                var model = new
                {
                    level = heaterService.GetLevel()
                };
                return Response.AsJson(model);
            };

            Post["api/v1/heater/level"] = parameters =>
            {
                int level = this.Context.Request.Form.level;
                var model = new { value = level };
                heaterService.SetHeatLevel(level);
                return Response.AsJson(model);
            };
        }
示例#2
0
        public HeaterModule()
        {
            var heaterService = new StateFullBoilerHeaterService(
                new BoilerHeaterService(new ServoMotorService())
                );

            Get["heater"] = parameters =>
            {
                var model = new {
                    status = heaterService.IsOn() ? "on" : "off",
                    level = heaterService.GetLevel()
                };

                return View["heater/index.html", model];
            };

            Post["heater"] = parameters =>
            {
                var model = new
                {
                    status = ((string)this.Request.Form.status ?? "off"),
                    level = (int)this.Request.Form.level
                };

                heaterService.SetHeatLevel(model.level);
                switch (model.status)
                {
                    case "on":
                        heaterService.TurnOn();
                        break;
                    case "off":
                        heaterService.TurnOff();
                        break;
                }

                return View["heater/index.html", model];
            };
        }