예제 #1
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;
            }
        }
예제 #2
0
		public object UnInstall(HttpRequestParams request)
		{
			string packageId = request.GetRequiredString("packageId");

			Context.PackageManager.UnInstall(packageId);
			return null;
		}
예제 #3
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;
		}
        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
				};
			}
		}
        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 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;
		}
예제 #8
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;
		}
		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;
			}
		}
예제 #10
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;
            }
        }
		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();
			}
		}
		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;
        }