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));
            }
        }
Esempio 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);
            }
        }
Esempio n. 3
0
        public async Task <TResult> RequestAsync(HttpRequestParams parameters)
        {
            httpClientHandler.CookieContainer.SetCookies(new Uri("http://www.youtube.com"), parameters.Cookies.Replace(';', ','));
            var result = await httpClient.SendAsync(GetRequestMessage(parameters));

            return(await ProcessResultAsync(result));
        }
Esempio n. 4
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 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 });
            }
        }
Esempio n. 6
0
        public object EditorOpenWidget(HttpRequestParams request)
        {
            var id = request.GetRequiredGuid("id");

            using (var session = Context.OpenSession())
            {
                var widget = session.Query <Widget>()
                             .Fetch(a => a.Dashboard)
                             .Single(x => x.Id == id);

                var model = GetEditorModel(widget.TypeAlias, widget.Dashboard.Id, widget.Dashboard.Title, 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 GetTiles(HttpRequestParams request)
        {
            using (var session = Context.OpenSession())
            {
                var result = new List <TileModel>();

                var tiles = session.Query <Tile>().OrderBy(t => t.SortOrder).ToList();

                foreach (var obj in tiles)
                {
                    TileDefinition def;

                    if (availableTiles.TryGetValue(obj.HandlerKey, out def))
                    {
                        var model = new TileModel(obj.Id);

                        try
                        {
                            var options = obj.GetParameters();
                            def.FillModel(model, options);
                        }
                        catch (Exception ex)
                        {
                            model.content = ex.Message;
                        }

                        result.Add(model);
                    }
                }

                return(result.ToArray());
            }
        }
Esempio n. 8
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);
        }
Esempio n. 9
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);
            }
        }
Esempio n. 10
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);
            }
        }
Esempio n. 11
0
        public object UnInstall(HttpRequestParams request)
        {
            string packageId = request.GetRequiredString("packageId");

            Context.PackageManager.UnInstall(packageId);
            return(null);
        }
Esempio n. 12
0
        public HttpResponseMessage Index()
        {
            try
            {
                // Debugger.Launch();
                string localPath = Request.RequestUri.LocalPath;

                logger.Info("execute action: {0};", localPath);

                ListenerHandler handler;

                if (!handlers.TryGetValue(localPath, out handler))
                {
                    var message = string.Format("handler for url '{0}' is not found", localPath);
                    throw new Exception(message);
                }

                HttpRequestParams   parameters = GetRequestParams(Request);
                HttpResponseMessage response   = handler.ProcessRequest(parameters);

                return(response);
            }
            catch (Exception ex)
            {
                logger.ErrorException(ex.Message, ex);
                throw;
            }
        }
Esempio n. 13
0
        public object SendEmail(HttpRequestParams requestParams)
        {
            Context.Require <MailPlugin>()
            .SendMail("*****@*****.**", "test2", Guid.NewGuid().ToString());

            return(null);
        }
Esempio n. 14
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();
            }
        }
Esempio n. 15
0
        public object SaveAlarm(HttpRequestParams request)
        {
            var id       = request.GetGuid("id");
            var name     = request.GetString("name");
            var hours    = request.GetRequiredInt32("hours");
            var minutes  = request.GetRequiredInt32("minutes");
            var scriptId = request.GetGuid("scriptId");

            using (var session = Context.OpenSession())
            {
                var alarmTime = id.HasValue
                                        ? session.Get <AlarmTime>(id.Value)
                                        : new AlarmTime {
                    Id = Guid.NewGuid()
                };

                var script = scriptId.HasValue
                                        ? session.Load <UserScript>(scriptId.Value)
                                        : null;

                alarmTime.Name       = name;
                alarmTime.Hours      = hours;
                alarmTime.Minutes    = minutes;
                alarmTime.UserScript = script;
                alarmTime.Enabled    = true;

                session.Save(alarmTime);
                session.Flush();
            }

            Context.GetPlugin <AlarmClockPlugin>().ReloadTimes();
            return(null);
        }
Esempio n. 16
0
 public object LoadParams(HttpRequestParams request)
 {
     return(new
     {
         lang = AppLang.Lang,
         css = cssFiles
     });
 }
Esempio n. 17
0
 public HttpHandlerResult TmpHandlerMethod42(HttpRequestParams requestParams)
 {
     return(HttpHandlerResult.Json(new
     {
         answer = 42,
         name = requestParams.GetString("name")
     }));
 }
Esempio n. 18
0
        public object AddTile(HttpRequestParams request)
        {
            var xxx = request.GetInt32("value");

            Context.GetPlugin <WebUiTilesPlugin>().AddTile <TestTileDefinition>(new { xxx });

            return(null);
        }
Esempio n. 19
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());
        }
Esempio n. 20
0
        public object UpdateLocationWeather(HttpRequestParams request)
        {
            var locationId = request.GetRequiredGuid("locationId");

            Context.GetPlugin <WeatherPlugin>().ReloadWeatherData(locationId);

            return(null);
        }
Esempio n. 21
0
        public object GetUrlErrors(HttpRequestParams requestParams)
        {
            var sb = new StringBuilder();

            errors.ForEach(msg => sb.AppendLine(msg));

            return(sb);
        }
Esempio n. 22
0
        public HttpHandlerResult GetUrlErrors(HttpRequestParams requestParams)
        {
            var sb = new StringBuilder();

            errors.ForEach(msg => sb.AppendLine(msg));

            return(HttpHandlerResult.Text(sb.ToString()));
        }
Esempio n. 23
0
 public object TmpHandlerMethod43(HttpRequestParams requestParams)
 {
     using (var db = Context.Require <DatabasePlugin>().OpenSession())
     {
         return(db.Set <SmallPig>()
                .Select(pig => new { id = pig.Id, name = pig.Name, size = pig.Size })
                .ToList());
     }
 }
Esempio n. 24
0
        public HttpHandlerResult TmpSendMqttMessage(HttpRequestParams requestParams)
        {
            var topic = requestParams.GetString("topic") ?? "test";
            var msg   = requestParams.GetString("msg") ?? "mumu";

            mqtt.Publish(topic, msg);

            return(null);
        }
        public object AddTile(HttpRequestParams request)
        {
            var strDef     = request.GetRequiredString("def");
            var strOptions = request.GetString("options");

            AddTile(strDef, strOptions);

            return(null);
        }
Esempio n. 26
0
        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. 27
0
        public HttpRequest()
        {
            Protocol = DEFAULT_HTTP_PROTOCOL;

            GET = new HttpRequestParams();
            POST = new HttpRequestParams();
            FILES = new HttpFormFiles();
            Headers = new HttpRequestHeaders();
            Cookies = new HttpCookies();
        }
Esempio n. 28
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))
            });
        }
Esempio n. 29
0
        public object GetWeather(HttpRequestParams request)
        {
            var now = DateTime.Now;

            WeatherLocatioinModel[] weatherData = Context
                                                  .GetPlugin <WeatherPlugin>()
                                                  .GetWeatherData(now);

            return(weatherData.Select(BuildLocationModel).ToArray());
        }
Esempio n. 30
0
        public override HttpContent GetContent(HttpRequestParams parameters)
        {
            var resource = PrepareResource();

            var content = new ByteArrayContent(resource);

            content.Headers.ContentType = new MediaTypeHeaderValue(contentType);

            return(content);
        }
Esempio n. 31
0
        public object GetDashboardList(HttpRequestParams request)
        {
            using (var session = Context.OpenSession())
            {
                var allDashboards = session.Query <Dashboard>().ToArray();

                var list = GetDashboardListModel(allDashboards);

                return(list);
            }
        }