예제 #1
0
        private ExpandedSettingsPackage GetBufferedSettings()
        {
            ExpandedSettingsPackage package = new ExpandedSettingsPackage()
            {
                MID           = _MID,
                LastUpdatedOn = DateTime.UtcNow
            };
            List <ExpandedSettingValue> settings = new List <ExpandedSettingValue>();

            using (LiteDatabase db = new LiteDatabase(_liteDBPathName))
            {
                var col = db.GetCollection <BufferedSetting>(_SETBUF_NAME);
                IEnumerable <BufferedSetting> storedSettings = col.FindAll().OrderBy(c => c.Id);
                foreach (BufferedSetting setting in storedSettings)
                {
                    ExpandedSettingValue esv = new ExpandedSettingValue();
                    esv.Id             = setting.Id;
                    esv.Name           = setting.Name;
                    esv.DataType       = (DataType)setting.DataType;
                    esv.IsDefaultValue = setting.IsDefaultValue;
                    esv.Value          = setting.Json;
                    settings.Add(esv);
                }
                package.Values = settings.ToArray();
            }
            return(package);
        }
        /// <summary>
        /// Download current settings for a device from cloud service.
        /// </summary>
        /// <returns>True if successful, False otherwise.</returns>
        public bool DownloadSettings()
        {
            string url = string.Format(_addressExpandedDeviceSettings, _MID);
            string result;

            if (Get(url, out result))
            {
                if (result != null && result.Length > 0)
                {
                    Settings = JsonConvert.DeserializeObject <ExpandedSettingsPackage>(result);
                    return(true);
                }
            }
            return(false);
        }
예제 #3
0
        private bool UpdateBufferedSettings(ExpandedSettingsPackage package)
        {
            using (LiteDatabase db = new LiteDatabase(_liteDBPathName))
            {
                db.DropCollection(_SETBUF_NAME);

                var col = db.GetCollection <BufferedSetting>(_SETBUF_NAME);

                // Insert new setting values
                foreach (ExpandedSettingValue esv in package.Values)
                {
                    BufferedSetting bs = new BufferedSetting()
                    {
                        Name           = esv.Name,
                        DataType       = (int)esv.DataType,
                        IsDefaultValue = esv.IsDefaultValue,
                        Json           = esv.Value
                    };
                    col.Insert(bs);
                }
                return(true);
            }
        }