public HttpHandlerResult SaveScript(HttpRequestParams request) { var id = request.GetGuid("id"); var name = request.GetRequiredString("name"); var body = request.GetRequiredString("body"); using (var session = database.OpenSession()) { UserScript script; if (id.HasValue) { script = session.Set<UserScript>().Single(s => s.Id == id.Value); } else { script = new UserScript { Id = Guid.NewGuid() }; session.Set<UserScript>().Add(script); } script.Name = name; script.Body = body; session.SaveChanges(); return HttpHandlerResult.Json(new { scriptId = script.Id }); } }
public object SaveScript(HttpRequestParams request) { var id = request.GetGuid("id"); var name = request.GetRequiredString("name"); var body = request.GetRequiredString("body"); using (var session = Context.Require <DatabasePlugin>().OpenSession()) { UserScript script; if (id.HasValue) { script = session.Set <UserScript>().Single(s => s.Id == id.Value); } else { script = new UserScript { Id = Guid.NewGuid() }; session.Set <UserScript>().Add(script); } script.Name = name; script.Body = body; session.SaveChanges(); return(script.Id); } }
public object AddSubscription(HttpRequestParams request) { var scriptId = request.GetRequiredGuid("scriptId"); var eventAlias = request.GetRequiredString("eventAlias"); var database = Context.Require <DatabasePlugin>(); if (!database.IsInitialized) { return(null); } using (var session = database.OpenSession()) { var guid = Guid.NewGuid(); var subscription = new ScriptEventHandler { Id = guid, EventAlias = eventAlias, UserScriptId = scriptId }; session.Set <ScriptEventHandler>().Add(subscription); session.SaveChanges(); return(guid); } }
private void SaveWidgetFields(Widget widget, HttpRequestParams request, ISession session) { var def = defs.GetValueOrDefault(widget.TypeAlias); if (def != null) { session.Query <WidgetParameter>() .Where(p => p.Widget.Id == widget.Id) .ForEach(session.Delete); session.Flush(); var fields = def.GetWidgetMetaData(session, Logger) ?? new WidgetParameterMetaData[0]; var json = request.GetRequiredString("json"); var values = Extensions.FromJson <Dictionary <string, string> >(json); foreach (var field in fields) { var value = values.GetValueOrDefault(field.Name); CreateParameter(session, widget, field, value); } session.Flush(); } }
public object AddTile(HttpRequestParams request) { var strDef = request.GetRequiredString("def"); var strOptions = request.GetString("options"); TileDefinition def; if (!availableTiles.TryGetValue(strDef, out def)) { throw new Exception(string.Format("invalid tile definition: {0}", strDef)); } using (var session = Context.OpenSession()) { var lastTile = session.Query <Tile>() .OrderByDescending(t => t.SortOrder) .FirstOrDefault(); int sortOrder = lastTile == null ? 0 : lastTile.SortOrder + 1; var tile = new Tile { Id = Guid.NewGuid(), HandlerKey = strDef, SortOrder = sortOrder, SerializedParameters = strOptions }; session.Save(tile); session.Flush(); } return(null); }
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 AddTile(HttpRequestParams request) { var strDef = request.GetRequiredString("def"); var strOptions = request.GetString("options"); AddTile(strDef, strOptions); return(null); }
public object AddLocation(HttpRequestParams request) { var displayName = request.GetRequiredString("displayName"); var query = request.GetRequiredString("query"); using (var session = Context.OpenSession()) { var location = new Location { Id = Guid.NewGuid(), DisplayName = displayName, Query = query }; session.Save(location); 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 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 }); } }
private Widget CreateWidget(HttpRequestParams request, ISession session) { var type = request.GetRequiredString("type"); var panelId = request.GetRequiredGuid("panelId"); var panel = session.Query <Panel>().Single(x => x.Id == panelId); var created = new Widget { Id = Guid.NewGuid(), Panel = panel, TypeAlias = type, SortOrder = int.MaxValue }; return(created); }
private Widget CreateWidget(HttpRequestParams request, ISession session) { var type = request.GetRequiredString("type"); var dashboardId = request.GetRequiredGuid("dashboardId"); var dashboard = session.Query <Dashboard>().Single(x => x.Id == dashboardId); var created = new Widget { Id = Guid.NewGuid(), Dashboard = dashboard, TypeAlias = type, SortOrder = int.MaxValue }; return(created); }
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 SaveTask(HttpRequestParams request) { var id = request.GetGuid("id"); var name = request.GetRequiredString("name"); var eventAlias = request.GetString("eventAlias"); var month = request.GetInt32("month"); var day = request.GetInt32("day"); var hour = request.GetInt32("hour"); var minute = request.GetInt32("minute"); var enabled = request.GetRequiredBool("enabled"); using (var session = Context.Require <DatabasePlugin>().OpenSession()) { CronTask task; if (id.HasValue) { task = session.Set <CronTask>().Single(s => s.Id == id.Value); } else { task = new CronTask { Id = Guid.NewGuid() }; session.Set <CronTask>().Add(task); } task.Name = name; task.EventAlias = eventAlias; task.Enabled = enabled; task.Month = month; task.Day = day; task.Hour = hour; task.Minute = minute; session.SaveChanges(); // reset cron event cache Context.Require <CronPlugin>().ReloadTasks(); return(task.Id); } }
public HttpHandlerResult AddSubscription(HttpRequestParams request) { var scriptId = request.GetRequiredGuid("scriptId"); var eventAlias = request.GetRequiredString("eventAlias"); using (var session = database.OpenSession()) { var subscriptionId = Guid.NewGuid(); var subscription = new ScriptEventHandler { Id = subscriptionId, EventAlias = eventAlias, UserScriptId = scriptId }; session.Set<ScriptEventHandler>().Add(subscription); session.SaveChanges(); return HttpHandlerResult.Json(new { subscriptionId }) ; } }
public object SaveScript(HttpRequestParams request) { Guid? id = request.GetGuid("id"); string name = request.GetRequiredString("name"); string body = request.GetString("body"); using (var session = Context.OpenSession()) { var script = id.HasValue ? session.Get <UserScript>(id.Value) : new UserScript { Id = Guid.NewGuid() }; script.Name = name; script.Body = body; session.SaveOrUpdate(script); session.Flush(); } return(null); }
public object CreatePanel(HttpRequestParams request) { Guid dashboardId = request.GetRequiredGuid("dashboard"); string title = request.GetRequiredString("title"); using (var session = Context.OpenSession()) { var dashboard = session.Load <Dashboard>(dashboardId); var panel = new Panel { Id = Guid.NewGuid(), Title = title, Dashboard = dashboard, SortOrder = int.MaxValue }; session.Save(panel); session.Flush(); return(panel.Id); } }
public object UpdateSortOrder(HttpRequestParams request) { var json = request.GetRequiredString("data"); var ids = Extensions.FromJson <Guid[]>(json); using (var session = Context.OpenSession()) { var tiles = session.Query <Tile>().ToList(); for (int i = 0; i < ids.Length; i++) { var tile = tiles.FirstOrDefault(t => t.Id == ids[i]); if (tile != null) { tile.SortOrder = i; } } session.Flush(); } return(null); }
public object AddSubscription(HttpRequestParams request) { string eventAlias = request.GetRequiredString("eventAlias"); Guid scriptId = request.GetRequiredGuid("scriptId"); using (var session = Context.OpenSession()) { var guid = Guid.NewGuid(); var script = session.Load <UserScript>(scriptId); var subscription = new ScriptEventHandler { Id = guid, EventAlias = eventAlias, UserScript = script }; session.Save(subscription); session.Flush(); return(guid); } }