Ejemplo n.º 1
0
        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 });
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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();
            }
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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
                });
            }
        }
Ejemplo n.º 11
0
        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
                });
            }
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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);
            }
        }
Ejemplo n.º 16
0
        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);
            }
        }
Ejemplo n.º 17
0
        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 }) ;
            }
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        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);
            }
        }
Ejemplo n.º 20
0
        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);
        }
Ejemplo n.º 21
0
        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);
            }
        }