コード例 #1
0
        public void OnGet()
        {
            EMSfIIoTApiConnector.GetEvents(HttpContext, out _, out events);

            JsonSerializerOptions jsonSerializerOptions = new JsonSerializerOptions();

            jsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
            ViewData["events"] = JsonSerializer.Serialize(events.ToList(), jsonSerializerOptions).Replace("\"", "\\\"");

            List <string> devices  = new List <string>();
            List <string> gateways = new List <string>();

            foreach (Gateway gateway in BoschIoTSuiteApiConnector.GetUserDevices(HttpContext))
            {
                gateways.Add(gateway.thingId);
                foreach (Devices device in gateway.attributes.configuration.devices)
                {
                    devices.Add(device.deviceId);
                }
            }
            ViewData["Variable"] = JsonSerializer
                                   .Serialize(devices)
                                   .Replace("\"", "\\\"");
            ViewData["Gateways"] = JsonSerializer
                                   .Serialize(gateways)
                                   .Replace("\"", "\\\"");

            List <string> notificationType = Enum.GetNames(typeof(NotificationType)).ToList();

            notificationType.Remove(NotificationType.None.ToString());
            ViewData["NotificationType"] = JsonSerializer
                                           .Serialize(notificationType,
                                                      jsonSerializerOptions)
                                           .Replace("\"", "\\\"");

            ViewData["EventType"] = JsonSerializer
                                    .Serialize(
                Enum.GetNames(typeof(EventType)).ToList(),
                jsonSerializerOptions)
                                    .Replace("\"", "\\\"");

            ViewData["EventValueType"] = JsonSerializer
                                         .Serialize(
                Enum.GetNames(typeof(EventValueType)).ToList(),
                jsonSerializerOptions)
                                         .Replace("\"", "\\\"");

            List <string> eventFrequencyStringValues = typeof(EventFrequency).GetStringValues().ToList();
            List <string> eventFrequencyEnumValues   = typeof(EventFrequency).GetEnumNames().ToList();
            //eventFrequencyEnumValues.Remove("Never");
            Dictionary <string, string> eventFrequency = eventFrequencyEnumValues
                                                         .Zip(eventFrequencyStringValues, (enumValue, stringValue) => new { enumValue, stringValue })
                                                         .ToDictionary(eventFrequency => eventFrequency.enumValue, eventFrequency => eventFrequency.stringValue);

            ViewData["EventFrequency"] = JsonSerializer
                                         .Serialize(eventFrequency,
                                                    jsonSerializerOptions)
                                         .Replace("\"", "\\\"");
        }
コード例 #2
0
        public void OnPost()
        {
            var form = Request.Form;

            if (form.TryGetValue("gatewayId", out _) & form.TryGetValue("operation", out _))
            {
                BoschIoTSuiteApiConnector.SendMessageToDevice(form["gatewayId"], form["operation"].ToString().ToLower());
            }

            OnGet();
        }
コード例 #3
0
 public void OnGet()
 {
     gateways = BoschIoTSuiteApiConnector.GetUserDevices(HttpContext);
 }
コード例 #4
0
        public void OnPost()
        {
            var form = Request.Form;

            if (form.TryGetValue("gatewayDeleteId", out var value))
            {
                BoschIoTSuiteApiConnector.DeleteDevice(value);
            }
            else
            {
                string  thingId = form["thingId"];
                Gateway gateway = gateways.Where(gateway => gateway.thingId.Equals(thingId)).FirstOrDefault();

                if (gateway == null)
                {
                    gateway            = new Gateway();
                    gateway.attributes = new GatewayAttributes();
                    gateway.attributes.configuration = new GatewayConfiguration();

                    gateway.features                      = new GatewayFeatures();
                    gateway.features.ESP32_CAM            = new GatewayESP32_CAM();
                    gateway.features.ESP32_CAM.definition = new List <string>();
                    gateway.features.ESP32_CAM.definition.Add("EMSfIIoT:ESP32_CAM:1.0.0");
                    gateway.features.ESP32_CAM.properties        = new ESP32_CAMProperties();
                    gateway.features.ESP32_CAM.properties.status = new Measure();

                    gateway.thingId    = thingId;
                    gateway.policyId   = form["policyId"];
                    gateway.definition = form["definition"];
                }

                gateway.attributes.thingName    = form["thingName"];
                gateway.attributes.manufacturer = form["manufacturer"];
                gateway.attributes.model        = form["model"];
                gateway.attributes.serialNo     = form["serialNo"];
                gateway.attributes.location     = form["location"];

                gateway.attributes.configuration.devices = new List <Devices>();
                gateway.attributes.configuration.users   = new List <string>();
                for (int i = 0; i < 255; i++)
                {
                    if (Request.Form.TryGetValue("deviceId" + i.ToString(), out var deviceId) &
                        Request.Form.TryGetValue("url" + i.ToString(), out var url) &
                        Request.Form.TryGetValue("locationId" + i.ToString(), out var locationId) &
                        deviceId != "" & url != "" & locationId != "")
                    {
                        gateway.attributes.configuration.devices.Add(new Devices
                        {
                            deviceId   = deviceId,
                            url        = new Uri(url),
                            locationId = Convert.ToInt64(locationId)
                        });
                    }

                    if (Request.Form.TryGetValue("userId" + i.ToString(), out var userId) &
                        userId != "")
                    {
                        gateway.attributes.configuration.users.Add(userId);
                    }
                }

                BoschIoTSuiteApiConnector.UpdateDevice(gateway);
                Thread.Sleep(1000);
                BoschIoTSuiteApiConnector.UpdateGatewaysList();
            }

            OnGet();
        }