public T Get <T>(string key)
        {
            if (IsEnumerableType(typeof(T)))
            {
                var stringValue = _storage.Get <string>(key);
                return(JsonConvert.DeserializeObject <T>(stringValue));
            }

            return(_storage.Get <T>(key));
        }
Esempio n. 2
0
        public void Apply_ShouldSet_OvpnProtocol_ToAuto(string previousValue)
        {
            // Arrange
            _storage.Get <string>("OvpnProtocol").Returns(previousValue);
            var migration = new AppSettingsMigration(_storage);

            // Act
            migration.Apply();
            // Assert
            _storage.Received().Set("OvpnProtocol", "auto");
        }
        public void Apply_Should_SwitchOff_SplitTunnel_WhenKillSwitch_IsOn()
        {
            // Arrange
            _storage.Get <bool>("KillSwitch").Returns(true);
            _storage.Get <bool>("SplitTunnelingEnabled").Returns(true);
            var migration = new AppSettingsMigration(_storage);

            // Act
            migration.Apply();
            // Assert
            _storage.Received().Set("SplitTunnelingEnabled", false);
        }
Esempio n. 4
0
        public T Get <T>(string key)
        {
            if (_cache.TryGetValue(key, out object cachedValue))
            {
                return(cachedValue is T result ? result : default(T));
            }

            var perUser = _storage.Get <PerUser <T>[]>(PerUserKey(key))?.SingleOrDefault(i => i.User == User);
            var value   = perUser != null ? perUser.Value : default(T);

            _cache[key] = value;
            return(value);
        }
Esempio n. 5
0
        public T Get <T>(string key)
        {
            var toType = UnwrapNullable(typeof(T));

            if (toType.IsEnum)
            {
                var stringValue = _storage.Get <string>(key);
                TryParseEnum(stringValue, out T result);
                return(result);
            }

            return(_storage.Get <T>(key));
        }
Esempio n. 6
0
        private void MigrateProfiles()
        {
            var appProfiles = _appSettings.Get <ProfileV1[]>("Profiles") ?? new ProfileV1[0];

            var cachedProfileData = new CachedProfileDataContract
            {
                Local = appProfiles
                        .Select(p => new MigratedProfile(p, _serverManager))
                        .Where(p => p.HasValue)
                        .Select(p => p.Value)
                        .ToList()
            };

            _userSettings.Set("Profiles", cachedProfileData);

            _appSettings.Set <ProfileV1[]>("Profiles", null);
        }
Esempio n. 7
0
        public async Task <T> GetValueOrDefault <T>(string key, Guid identityId)
        {
            var setting = await _settingsStorage.Get(key, identityId);

            if (setting == default(Setting))
            {
                return(default(T));
            }

            if (setting.Accessed < DateTimeOffset.Now.AddDays(-1))
            {
                setting.Accessed = DateTimeOffset.Now;

                await _settingsStorage.Update(setting);
            }

            return(JsonSerializer.Deserialize <T>(setting.ValueField));
        }
Esempio n. 8
0
        public void Apply_ShouldMigrate_SecureCore(bool value)
        {
            // Arrange
            _appSettings.Get <bool>("SecureCore").Returns(value);
            var migration = new UserSettingsMigration(_appSettings, _userSettings);

            // Act
            migration.Apply();
            // Assert
            _userSettings.Received().Set("SecureCore", value);
        }
Esempio n. 9
0
        private User UnsafeUser()
        {
            string username = _storage.Get <string>("Username")?.Trim();

            if (string.IsNullOrEmpty(username))
            {
                return(Core.Models.User.EmptyUser());
            }

            username = username.Decrypt();

            string vpnUsername = _userSettings.Get <string>("VpnUsername");

            if (!string.IsNullOrEmpty(vpnUsername))
            {
                vpnUsername = vpnUsername.Decrypt();
            }

            string vpnPassword = _userSettings.Get <string>("VpnPassword");

            if (!string.IsNullOrEmpty(vpnPassword))
            {
                vpnPassword = vpnPassword.Decrypt();
            }

            int    delinquent      = _userSettings.Get <int>("Delinquent");
            string originalVpnPlan = _userSettings.Get <string>("VpnPlan");
            string vpnPlan         = originalVpnPlan;

            if (Core.Models.User.IsDelinquent(delinquent))
            {
                vpnPlan = FREE_VPN_PLAN;
            }

            return(new User
            {
                Username = username,
                VpnPlan = vpnPlan,
                MaxTier = _userSettings.Get <sbyte>("MaxTier"),
                Delinquent = delinquent,
                ExpirationTime = _userSettings.Get <int>("ExpirationTime"),
                MaxConnect = _userSettings.Get <int>("MaxConnect"),
                Services = _userSettings.Get <int>("Services"),
                VpnUsername = vpnUsername,
                VpnPassword = vpnPassword,
                OriginalVpnPlan = originalVpnPlan
            });
        }
Esempio n. 10
0
        private Models.User UnsafeUser()
        {
            var username = _storage.Get <string>("Username")?.Trim();

            if (string.IsNullOrEmpty(username))
            {
                return(Models.User.EmptyUser());
            }

            username = username.Decrypt();

            var vpnUsername = _userSettings.Get <string>("VpnUsername");

            if (!string.IsNullOrEmpty(vpnUsername))
            {
                vpnUsername = vpnUsername.Decrypt();
            }

            var vpnPassword = _userSettings.Get <string>("VpnPassword");

            if (!string.IsNullOrEmpty(vpnPassword))
            {
                vpnPassword = vpnPassword.Decrypt();
            }

            return(new Models.User
            {
                Username = username,
                VpnPlan = _userSettings.Get <string>("VpnPlan"),
                MaxTier = _userSettings.Get <sbyte>("MaxTier"),
                Delinquent = _userSettings.Get <int>("Delinquent"),
                ExpirationTime = _userSettings.Get <int>("ExpirationTime"),
                MaxConnect = _userSettings.Get <int>("MaxConnect"),
                Services = _userSettings.Get <int>("Services"),
                VpnUsername = vpnUsername,
                VpnPassword = vpnPassword
            });
        }
Esempio n. 11
0
        public T Get <T>(string key)
        {
            Migrate();

            return(_storage.Get <T>(key));
        }