Esempio n. 1
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());
        }