public object GetSensorTable(HttpRequestParams request) { using (var session = Context.OpenSession()) { var info = new { host = MqttPlugin.Host, port = MqttPlugin.Port, path = MqttPlugin.Path }; var messages = session .Query<ReceivedData>() .OrderBy(m => m.Path) .Select(m => new { id = m.Id, path = m.Path, message = m.Message, timestamp = m.Timestamp }).ToList(); return new { info, messages }; } }
public object AddSensor(HttpRequestParams request) { var displayName = request.GetRequiredString("displayName"); var channel = request.GetRequiredInt32("channel"); var showHumidity = request.GetRequiredBool("showHumidity"); Logger.Debug("add sensor: channel={0}; displayName={1}; showHumidity={2}", channel, displayName, showHumidity); using (var session = Context.OpenSession()) { var sensor = new TemperatureSensor { Id = Guid.NewGuid(), Channel = channel, DisplayName = displayName, ShowHumidity = showHumidity, Timestamp = DateTime.Now }; session.Save(sensor); session.Flush(); return sensor.Id; } }
public object UnInstall(HttpRequestParams request) { string packageId = request.GetRequiredString("packageId"); Context.PackageManager.UnInstall(packageId); return null; }
public object LoadEditor(HttpRequestParams request) { var id = request.GetGuid("id"); using (var session = Context.OpenSession()) { var scriptList = session .Query<UserScript>() .Select(s => new { id = s.Id, name = s.Name }) .ToArray(); if (id.HasValue) { var alarm = session.Get<AlarmTime>(id.Value); return BuildEditorModel( scriptList, alarm.Id, alarm.Name, alarm.Hours, alarm.Minutes, alarm.Enabled, alarm.UserScript.GetPropertyOrDefault(obj => (Guid?)obj.Id) ); } return BuildEditorModel(scriptList); } }
public object EditorOpenWidget(HttpRequestParams request) { var id = request.GetRequiredGuid("id"); using (var session = Context.OpenSession()) { var widget = session.Query<Widget>() .Fetch(a => a.Panel) .ThenFetch(p => p.Dashboard) .Single(x => x.Id == id); var model = GetEditorModel(widget.TypeAlias, widget.Panel, session); var parameters = session.Query<WidgetParameter>() .Where(x => x.Widget.Id == id) .ToArray(); FillEditorModel(model, widget, parameters); return new { info = model.Item1, fields = model.Item2 }; } }
public object GetPackages(HttpRequestParams request) { string query = request.GetString("query"); var list = Context.PackageManager.GetPackages(query); return list.Select(BuildModel).Where(x => x != null).ToArray(); }
public override HttpContent GetContent(HttpRequestParams parameters) { var resource = PrepareResource(); var content = new ByteArrayContent(resource); content.Headers.ContentType = new MediaTypeHeaderValue(contentType); return content; }
public object GetCameraImage(HttpRequestParams request) { var cameraIp = ConfigurationManager.AppSettings["testCameraIP"]; var bytes = GetImage(cameraIp, "admin", ""); return new { url = string.Format("data:image/jpeg;base64,{0}", Convert.ToBase64String(bytes)) }; }
public override HttpContent GetContent(HttpRequestParams parameters) { object result = action(parameters); string json = JsonConvert.SerializeObject(result); HttpContent content = new StringContent(json, Encoding.UTF8, "application/json"); return content; }
public object GetScriptList(HttpRequestParams request) { using (var session = Context.OpenSession()) { var list = session.Query<UserScript>() .Select(x => new { id = x.Id, name = x.Name }) .ToArray(); return list; } }
public object GetDashboardList(HttpRequestParams request) { using (var session = Context.OpenSession()) { var allDashboards = session.Query<Dashboard>().ToArray(); var list = GetDashboardListModel(allDashboards); return list; } }
public object GetWidgetList(HttpRequestParams request) { Guid dashboardId = request.GetRequiredGuid("id"); using (var session = Context.OpenSession()) { var info = GetDashboardModel(dashboardId, session); var widgets = GetWidgetListModel(dashboardId, session); return new { info, widgets }; } }
public object DeleteSubscription(HttpRequestParams request) { Guid subscriptionId = request.GetRequiredGuid("subscriptionId"); using (var session = Context.OpenSession()) { var subscription = session.Load<ScriptEventHandler>(subscriptionId); session.Delete(subscription); session.Flush(); } return null; }
public object DeleteScript(HttpRequestParams request) { Guid scriptId = request.GetRequiredGuid("scriptId"); using (var session = Context.OpenSession()) { var subscription = session.Load<UserScript>(scriptId); session.Delete(subscription); session.Flush(); } return null; }
public object LoadScript(HttpRequestParams request) { Guid id = request.GetRequiredGuid("id"); using (var session = Context.OpenSession()) { var script = session.Query<UserScript>() .Select(x => new { id = x.Id, name = x.Name, body = x.Body }) .FirstOrDefault(x => x.id == id); return script; } }
public HttpResponseMessage ProcessRequest(HttpRequestParams parameters) { var content = GetContent(parameters); var response = new HttpResponseMessage { Content = content }; if (!CacheResponse) { response.Headers.CacheControl = new CacheControlHeaderValue { NoStore = true, NoCache = true }; response.Headers.Pragma.Add(new NameValueHeaderValue("no-cache")); } return response; }
public object DeleteAlarm(HttpRequestParams request) { var id = request.GetRequiredGuid("id"); using (var session = Context.OpenSession()) { var alarmTime = session.Load<AlarmTime>(id); session.Delete(alarmTime); session.Flush(); } Context.GetPlugin<AlarmClockPlugin>().ReloadTimes(); return null; }
public object DeleteSensor(HttpRequestParams request) { var id = request.GetRequiredGuid("id"); Logger.Debug("delete sensor: id={0}", id); using (var session = Context.OpenSession()) { var sensor = session.Load<TemperatureSensor>(id); session.Delete(sensor); session.Flush(); } return null; }
public object DeleteLocation(HttpRequestParams request) { var locationId = request.GetRequiredGuid("locationId"); using (var session = Context.OpenSession()) { var location = session.Get<Location>(locationId); if (location != null) { session.Delete(location); session.Flush(); } } return null; }
public object DeletePanel(HttpRequestParams request) { Guid id = request.GetRequiredGuid("id"); using (var session = Context.OpenSession()) { var panel = session.Get<Panel>(id); if (panel != null) { session.Delete(panel); session.Flush(); } } return null; }
public object EditorCreateWidget(HttpRequestParams request) { var dashboardId = request.GetRequiredGuid("dashboard"); var type = request.GetRequiredString("type"); using (var session = Context.OpenSession()) { var dashboard = session.Query<Dashboard>().Single(x => x.Id == dashboardId); var model = GetEditorModel(type, dashboard.Id, dashboard.Title, session); return new { info = model.Item1, fields = model.Item2 }; } }
public object DispatchApiQuery(HttpRequestParams request) { int channel = request.GetRequiredInt32("ch"); int cmd = request.GetRequiredInt32("cmd"); switch (cmd) { // Set command - Установка яркости (формат в процентах и через аргументы d0, d1, d2) case CMD_SET_BRIGHTNESS: Logger.Debug("nooAPI Set command received, channel = {0}", channel); int? brightness = request.GetInt32("br"); if (brightness != null) { int value = (155 * brightness.Value / 100); Context.GetPlugin<NooLitePlugin>().SendCommand(CMD_SET_BRIGHTNESS, channel, value); } else { int format = request.GetRequiredInt32("fmt"); int d0 = request.GetRequiredInt32("d0"); switch (format) { case 1: Context.GetPlugin<NooLitePlugin>().SendCommand(CMD_SET_BRIGHTNESS, channel, d0); break; case 3: int d1 = request.GetRequiredInt32("d1"); int d2 = request.GetRequiredInt32("d2"); Context.GetPlugin<NooLitePlugin>().SendLedCommand(CMD_SET_BRIGHTNESS, channel, d0, d1, d2); break; default: string message = string.Format("Insupported FMT value {0}", format); throw new NullReferenceException(message); } } break; default: Logger.Debug("nooAPI {0} command received, channel = {1}", cmd, channel); Context.GetPlugin<NooLitePlugin>().SendCommand(cmd, channel, 0); break; } return "OK"; }
public object DeleteDashboard(HttpRequestParams request) { Guid id = request.GetRequiredGuid("id"); using (var session = Context.OpenSession()) { var dashboard = session.Get<Dashboard>(id); if (dashboard != null) { session.Delete(dashboard); session.Flush(); } } return null; }
public object EditorCreateWidget(HttpRequestParams request) { var panelId = request.GetRequiredGuid("panel"); var type = request.GetRequiredString("type"); using (var session = Context.OpenSession()) { var panel = session.Query<Panel>().Fetch(p => p.Dashboard).Single(x => x.Id == panelId); var model = GetEditorModel(type, panel, session); return new { info = model.Item1, fields = model.Item2 }; } }
public object EditorDeleteWidget(HttpRequestParams request) { Guid id = request.GetRequiredGuid("id"); using (var session = Context.OpenSession()) { var widget = session.Get<Widget>(id); if (widget != null) { session.Delete(widget); session.Flush(); } } return null; }
public object SetAlarmState(HttpRequestParams request) { var id = request.GetRequiredGuid("id"); var enabled = request.GetRequiredBool("enabled"); using (var session = Context.OpenSession()) { var alarmTime = session.Get<AlarmTime>(id); alarmTime.Enabled = enabled; session.Save(alarmTime); session.Flush(); } Context.GetPlugin<AlarmClockPlugin>().ReloadTimes(); return null; }
public object GetAlarmList(HttpRequestParams request) { using (var session = Context.OpenSession()) { var list = session.Query<AlarmTime>() .Select(x => new { id = x.Id, name = x.Name, hours = x.Hours, minutes = x.Minutes, enabled = x.Enabled }) .ToArray(); return list; } }
public object RenamePanel(HttpRequestParams request) { Guid id = request.GetRequiredGuid("id"); string title = request.GetRequiredString("title"); using (var session = Context.OpenSession()) { var panel = session.Get<Panel>(id); if (panel != null) { panel.Title = title; session.Save(panel); session.Flush(); } } return null; }
public object CreateDashboard(HttpRequestParams request) { string title = request.GetRequiredString("title"); using (var session = Context.OpenSession()) { var dashboard = new Dashboard { Id = Guid.NewGuid(), Title = title, SortOrder = int.MaxValue }; session.Save(dashboard); session.Flush(); return dashboard.Id; } }
public object DeleteMessage(HttpRequestParams request) { var id = request.GetRequiredGuid("id"); using (var session = Context.OpenSession()) { var message = session.Load<ReceivedData>(id); if (message != null) { Logger.Debug("delete mqtt message: path={0}", message.Path); session.Delete(message); session.Flush(); } } return null; }