public List <ModuleModel> GenerateModuleModel(string deviceName)
        {
            var mModel = new List <ModuleModel>();

            foreach (var m in DeviceStorage.GetDeviceByName(deviceName).Modules)
            {
                var buf = new ModuleModel();
                buf.module     = m;
                buf.DeviceName = deviceName;
                if (buf.module is Trigger)
                {
                    buf.Type   = "Simple Trigger";
                    buf.StrVal = Utility.UnWrapStates((buf.module as Trigger).State);
                }
                if (buf.module is VariadicTrigger)
                {
                    buf.Type   = "Variadic Trigger";
                    buf.StrVal = (buf.module as VariadicTrigger).State.ToString();
                }
                if (buf.module is Sensor)
                {
                    buf.Type = (buf.module as Sensor).State.ToString();
                }
                mModel.Add(buf);
                // mModel[0].Module.
            }
            return(mModel);
        }
        public IActionResult Register(string deviceName)
        {
            DeviceStorage.RegisterDevice(DeviceStorage.GetDeviceByName(deviceName));
            ViewData["Message"] = "Settings general page.";

            return(View("Devices", DevModelHandler.deviceModel));
        }
        public IActionResult ScheduleTimeBased(string deviceName, string moduleName)
        {
            var      module   = DeviceStorage.GetDeviceByName(deviceName).GetModuleByName(moduleName);
            Random   rand     = new Random();
            SmSEvent smSEvent = new TimeEvent("AutoGeneratedEvent", module, rand.Next(1, 250));
            var      time     = DateTime.Now.AddSeconds(5);

            (smSEvent as TimeEvent).TriggerAt(time);
            Scheduler.AddEvent(smSEvent);
            // DevModelHandler.deviceModel.Find(x => x.DeviceInfo.Device.Name == deviceName).DeviceInfo.Device.ExternalName = "Tesst";
            //var test = Request
            ViewData["Message"] = "Settings general page.";

            return(View("Devices", DevModelHandler.deviceModel));
        }
示例#4
0
        private string HandleDump()
        {
            Device buf = new Device(_headers["device_name"], "Empty");

            buf.CurrentTime = Int64.Parse(_headers["local_time"]);
            if (!DeviceStorage.Contains(_headers["device_name"]))
            {
                _resultInfo.Code    = 404;
                _resultInfo.Message = "Device not found";
            }
            else
            {
                buf = DeviceStorage.GetDeviceByName(_headers["device_name"]);
                if (!_headers.ContainsKey("auth"))
                {
                    _resultInfo.Code    = (int)RetCodes.UNAUTHORIZED;
                    _resultInfo.Message = "No auth header";
                }
                else
                {
                    if (_headers["auth"] == buf.AuthToken)
                    {
                        var modules = ParseModulesFromHeaders();
                        foreach (var m in modules)
                        {
                            if (buf.IsModuleExist(m.Name))
                            {
                                buf.ChangeModuleFromDevice(buf.GetModuleByName(m.Name), m);
                            }
                            else
                            {
                                buf.AddModule(m);
                            }
                        }
                        _resultInfo.Code    = (int)RetCodes.OK;
                        _resultInfo.Message = "Ok";
                    }
                    else
                    {
                        _resultInfo.Code    = (int)RetCodes.UNAUTHORIZED;
                        _resultInfo.Message = "Auth token is wrong.";
                    }
                }
            }
            return(buf.GetQueueMessage() + BuildValidationString(buf));
        }
示例#5
0
        private string HandleAck()
        {
            Device buf = new Device(_headers["device_name"], "Empty");

            buf.LastSync = DateTime.Now;
            if (DeviceStorage.Contains(_headers["device_name"]))
            {
                buf = DeviceStorage.GetDeviceByName(_headers["device_name"]);
            }
            else
            {
                if (DatabaseWrapper.IsDeviceExist(_headers["device_name"]))
                {
                    buf = DatabaseWrapper.LoadDeviceFromDB(_headers["device_name"]).Device;
                }
            }

            buf.CurrentTime = Int64.Parse(_headers["local_time"]);
            var modules = ParseModulesFromHeaders();

            foreach (var m in modules)
            {
                if (buf.IsModuleExist(m.Name))
                {
                    buf.ChangeModuleFromDevice(buf.GetModuleByName(m.Name), m);
                }
                else
                {
                    buf.AddModule(m);
                }
            }
            if (!DeviceStorage.DeviceExists(_headers["device_name"]))
            {
                DeviceStorage.AddDevice(buf);
            }

            _resultInfo.Code    = (int)RetCodes.OK;
            _resultInfo.Message = "Ok";
            return(buf.GetQueueMessage());
        }