Example #1
0
        /// <summary>
        /// Converts <see cref="ApplicationDataCompositeValue"/> instance to <see cref="MSHealthToken"/>.
        /// </summary>
        /// <param name="composite"><see cref="ApplicationDataCompositeValue"/> instance.</param>
        /// <returns><see cref="MSHealthToken"/> instancel.</returns>
        public static MSHealthToken ToMSHealthToken(this ApplicationDataCompositeValue composite)
        {
            MSHealthToken loToken = null;

            if (composite != null)
            {
                loToken = new MSHealthToken();
                if (composite["creationTime"] != null)
                {
                    loToken.CreationTime = new DateTime((long)composite["creationTime"]);
                }
                if (composite["expiresIn"] != null)
                {
                    loToken.ExpiresIn = (long)composite["expiresIn"];
                }
                if (composite["accessToken"] != null)
                {
                    loToken.AccessToken = (string)composite["accessToken"];
                }
                if (composite["refreshToken"] != null)
                {
                    loToken.RefreshToken = (string)composite["refreshToken"];
                }
            }
            return(loToken);
        }
Example #2
0
        public static void UpdateMSHealthToken(MSHealthToken token)
        {
            SetVersion(); // Ensure settings are on last version
            ApplicationDataContainer loRoamingSettings = ApplicationData.Current.RoamingSettings;

            if (token != null)
            {
                // Token provided, persist values
                loRoamingSettings.Values["MSHealthToken"] = token.ToComposite();
            }
            else
            {
                // Token not provided, reset values
                if (loRoamingSettings.Values["MSHealthToken"] != null)
                {
                    loRoamingSettings.Values.Remove("MSHealthToken");
                }
            }
        }
Example #3
0
        /// <summary>
        /// Converts <see cref="MSHealthToken"/> instance to <see cref="ApplicationDataCompositeValue"/>.
        /// </summary>
        /// <param name="token"><see cref="MSHealthToken"/> instance.</param>
        /// <returns><see cref="ApplicationDataCompositeValue"/> instance.</returns>
        public static ApplicationDataCompositeValue ToComposite(this MSHealthToken token)
        {
            ApplicationDataCompositeValue loComposite = null;

            if (token != null)
            {
                loComposite = new ApplicationDataCompositeValue();
                loComposite["creationTime"]   = token.CreationTime.Ticks;
                loComposite["expiresIn"]      = token.ExpiresIn;
                loComposite["expirationTime"] = token.ExpirationTime.Ticks;
                if (!string.IsNullOrEmpty(token.AccessToken))
                {
                    loComposite["accessToken"] = token.AccessToken;
                }
                if (!string.IsNullOrEmpty(token.RefreshToken))
                {
                    loComposite["refreshToken"] = token.RefreshToken;
                }
            }

            return(loComposite);
        }
Example #4
0
        /// <summary>
        /// Ensures settings version is up to date.
        /// </summary>
        private static void SetVersion()
        {
            ApplicationData loAppData = ApplicationData.Current;

            if (loAppData.Version < 1)
            {
                Task.Run(async() =>
                {
                    await loAppData.SetVersionAsync(1, new ApplicationDataSetVersionHandler((request) =>
                    {
                        SetVersionDeferral loDeferral = request.GetDeferral();
                        if (request.CurrentVersion < 1)
                        {
                            ApplicationDataContainer loLocalSettings   = ApplicationData.Current.LocalSettings;
                            ApplicationDataContainer loRoamingSettings = ApplicationData.Current.RoamingSettings;
                            ApplicationDataCompositeValue loComposite  = null;
                            // MSHealthToken
                            if (loLocalSettings.Values["MSHealthTokenCreationTime"] != null ||
                                loLocalSettings.Values["MSHealthExpiresIn"] != null ||
                                loLocalSettings.Values["MSHealthAccessToken"] != null ||
                                loLocalSettings.Values["MSHealthRefreshToken"] != null)
                            {
                                MSHealthToken loToken = new MSHealthToken();
                                if (loLocalSettings.Values["MSHealthTokenCreationTime"] != null)
                                {
                                    loToken.CreationTime = new DateTime((long)loLocalSettings.Values["MSHealthTokenCreationTime"]);
                                }
                                if (loLocalSettings.Values["MSHealthExpiresIn"] != null)
                                {
                                    loToken.ExpiresIn = (long)loLocalSettings.Values["MSHealthExpiresIn"];
                                }
                                if (loLocalSettings.Values["MSHealthAccessToken"] != null)
                                {
                                    loToken.AccessToken = (string)loLocalSettings.Values["MSHealthAccessToken"];
                                }
                                if (loLocalSettings.Values["MSHealthRefreshToken"] != null)
                                {
                                    loToken.RefreshToken = (string)loLocalSettings.Values["MSHealthRefreshToken"];
                                }
                                loRoamingSettings.Values["MSHealthToken"] = loToken.ToComposite();
                            }
                            // Activity Filters
                            if (loLocalSettings.Values["MSHealthFilterActivityExercise"] != null ||
                                loLocalSettings.Values["MSHealthFilterActivityRun"] != null ||
                                loLocalSettings.Values["MSHealthFilterActivityBike"] != null ||
                                loLocalSettings.Values["MSHealthFilterActivityGolf"] != null ||
                                loLocalSettings.Values["MSHealthFilterActivitySleep"] != null ||
                                loLocalSettings.Values["MSHealthFilterActivityGuided"] != null ||
                                loLocalSettings.Values["MSHealthFilterPeriod"] != null ||
                                loLocalSettings.Values["MSHealthFilterDistance"] != null)
                            {
                                loComposite = new ApplicationDataCompositeValue();
                                // Activity Type: Exercise
                                if (loLocalSettings.Values["MSHealthFilterActivityExercise"] != null)
                                {
                                    loComposite["exercise"] = loLocalSettings.Values["MSHealthFilterActivityExercise"];
                                }
                                // Activity Type: Run
                                if (loLocalSettings.Values["MSHealthFilterActivityRun"] != null)
                                {
                                    loComposite["run"] = loLocalSettings.Values["MSHealthFilterActivityRun"];
                                }
                                // Activity Type: Bike
                                if (loLocalSettings.Values["MSHealthFilterActivityBike"] != null)
                                {
                                    loComposite["bike"] = loLocalSettings.Values["MSHealthFilterActivityBike"];
                                }
                                // Activity Type: Golf
                                if (loLocalSettings.Values["MSHealthFilterActivityGolf"] != null)
                                {
                                    loComposite["golf"] = loLocalSettings.Values["MSHealthFilterActivityGolf"];
                                }
                                // Activity Type: Sleep
                                if (loLocalSettings.Values["MSHealthFilterActivitySleep"] != null)
                                {
                                    loComposite["sleep"] = loLocalSettings.Values["MSHealthFilterActivitySleep"];
                                }
                                // Activity Type: Guided Workout
                                if (loLocalSettings.Values["MSHealthFilterActivityGuided"] != null)
                                {
                                    loComposite["guided"] = loLocalSettings.Values["MSHealthFilterActivityGuided"];
                                }
                                // Period
                                if (loLocalSettings.Values["MSHealthFilterPeriod"] != null)
                                {
                                    loComposite["period"] = loLocalSettings.Values["MSHealthFilterPeriod"];
                                }
                                // Distance Unit
                                if (loLocalSettings.Values["MSHealthFilterDistance"] != null)
                                {
                                    loComposite["distance"] = loLocalSettings.Values["MSHealthFilterDistance"];
                                }
                                loRoamingSettings.Values["MSHealthActivityFilters"] = loComposite;
                            }
                        }
                        loDeferral.Complete();
                    }));
                }).Wait();
            }
        }
Example #5
0
        /// <summary>
        /// Writes value to settings.
        /// </summary>
        /// <typeparam name="T"><see cref="System.Type"/> parameter to write.</typeparam>
        /// <param name="key">Setting key.</param>
        /// <param name="value">Setting value.</param>
        /// <param name="composite">Setting composite.</param>
        private static void WriteSettingValue <T>(string key, T value, string composite = null)
        {
            SetVersion(); // Ensure settings are on last version
#if WINDOWS_UWP
            ApplicationDataContainer      loRoamingSettings = ApplicationData.Current.RoamingSettings;
            ApplicationDataCompositeValue loComposite       = null;
            MSHealthToken loMSHealthToken = null;
            if (!string.IsNullOrEmpty(composite))
            {
                loComposite = loRoamingSettings.Values[composite] as ApplicationDataCompositeValue;
                if (loComposite != null &&
                    !string.IsNullOrEmpty(key))
                {
                    if (value != null)
                    {
                        loComposite[key] = value;
                    }
                    else
                    {
                        loComposite.Values.Remove(key);
                    }
                    loRoamingSettings.Values[composite] = loComposite;
                }
                else
                {
                    if (value != null)
                    {
                        if (typeof(T) == typeof(MSHealthToken))
                        {
                            loMSHealthToken = value as MSHealthToken;
                            if (loMSHealthToken != null)
                            {
                                loRoamingSettings.Values[composite] = loMSHealthToken.ToComposite();
                            }
                        }
                        else
                        {
                            loComposite      = new ApplicationDataCompositeValue();
                            loComposite[key] = value;
                            loRoamingSettings.Values[composite] = loComposite;
                        }
                    }
                    else
                    {
                        loRoamingSettings.Values.Remove(composite);
                    }
                }
            }
            else
            {
                if (value != null)
                {
                    loRoamingSettings.Values[key] = value;
                }
                else
                {
                    loRoamingSettings.Values.Remove(key);
                }
            }
#elif DESKTOP_APP
            if (value != null)
            {
                ConfigurationManager.AppSettings[key] = value.ToString();
            }
            else
            {
                ConfigurationManager.AppSettings[key] = null;
            }
#endif
        }