Esempio n. 1
0
        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;
            }
        }
Esempio n. 3
0
		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
				};
			}
		}
Esempio n. 6
0
		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;
        }
Esempio n. 8
0
		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;
        }
Esempio n. 10
0
		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 };
            }
        }
Esempio n. 13
0
        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;
        }
Esempio n. 14
0
        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;
        }
Esempio n. 15
0
		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;
			}
		}
Esempio n. 16
0
        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;
        }
Esempio n. 17
0
        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;
        }
Esempio n. 18
0
        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;
        }
Esempio n. 19
0
		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
                };
            }
        }
Esempio n. 22
0
		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;
        }
Esempio n. 26
0
		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;
		}
Esempio n. 27
0
        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;
            }
        }
Esempio n. 30
0
        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;
        }