public object SaveAlarm(HttpRequestParams request)
        {
            var id = request.GetGuid("id");
            var name = request.GetString("name");
            var hours = request.GetRequiredInt32("hours");
            var minutes = request.GetRequiredInt32("minutes");
            var scriptId = request.GetGuid("scriptId");

            using (var session = Context.OpenSession())
            {
                var alarmTime = id.HasValue
                    ? session.Get<AlarmTime>(id.Value)
                    : new AlarmTime { Id = Guid.NewGuid() };

                var script = scriptId.HasValue
                    ? session.Load<UserScript>(scriptId.Value)
                    : null;

                alarmTime.Name = name;
                alarmTime.Hours = hours;
                alarmTime.Minutes = minutes;
                alarmTime.UserScript = script;
                alarmTime.Enabled = true;

                session.Save(alarmTime);
                session.Flush();
            }

            Context.GetPlugin<AlarmClockPlugin>().ReloadTimes();
            return null;
        }
        private object apiAddController(HttpRequestParams request)
        {
            var name = request.GetRequiredString("name");
            var type = (ControllerType)request.GetRequiredInt32("type");

            var ctrl = new Controller()
            {
                Id = Guid.NewGuid(),
                Name = name,
                Type = type,
                IsAutoMode = false
            };

            ControllerBase controller = CastController(ctrl);
            if (controller != null)
            {
                controller.Init(Context);
                controller.SaveToDB();
                controllers.Add(controller);

                NotifyForSignalR(new { MsgId = "ControllerAdded", Data = BuildControllerWebModel(ctrl) });
            }

            return null;
        }
 private object apiGetSensorsByType(HttpRequestParams request)
 {
     var type = (SensorType)request.GetRequiredInt32("type");
     return GetSensorsByType(type).Select(BuildSensorWebModel).Where(x => x != null).ToArray();
 }