public FilePropertySet(ApplicationData owner, ApplicationDataLocality locality)
            {
                StorageFolder folder;

                switch (locality)
                {
                case ApplicationDataLocality.Local:
                    folder = owner.LocalFolder;
                    break;

                case ApplicationDataLocality.Roaming:
                    folder = owner.RoamingFolder;
                    break;

                case ApplicationDataLocality.LocalCache:
                    folder = owner.LocalCacheFolder;
                    break;

                case ApplicationDataLocality.Temporary:
                    folder = owner.TemporaryFolder;
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(locality));
                }

                _folderPath = folder.Path;
                _filePath   = Path.Combine(folder.Path, UWPFileName);

                ReadFromFile();
            }
Beispiel #2
0
        public bool Contains(string key, ApplicationDataLocality dataLocality)
        {
            if (key == null)
            {
                throw new ArgumentNullException(nameof(key));
            }

            switch (dataLocality)
            {
            case ApplicationDataLocality.Local:
                return(ApplicationData.Current.LocalSettings.Values.ContainsKey(key));

            case ApplicationDataLocality.Roaming:
                return(ApplicationData.Current.RoamingSettings.Values.ContainsKey(key));

            case ApplicationDataLocality.Temporary:
                throw new NotSupportedException();

            case ApplicationDataLocality.LocalCache:
                throw new NotSupportedException();

            default:
                throw new ArgumentOutOfRangeException(nameof(dataLocality));
            }
        }
Beispiel #3
0
            public FilePropertySet(ApplicationData owner, ApplicationDataLocality locality)
            {
                _locality = locality;
                _owner    = owner;

                ReadFromLegacyFile();
            }
        internal ApplicationDataContainer(string name, ApplicationDataLocality locality)
        {
            Locality = locality;
            Name     = name;

            InitializePartial();
        }
Beispiel #5
0
        internal static void Clear(ApplicationDataLocality locality)
        {
            var parms = new ApplicationDataContainer_ClearParams
            {
                Locality = locality.ToStringInvariant()
            };

            TSInteropMarshaller.InvokeJS("UnoStatic_Windows_Storage_ApplicationDataContainer:clear", parms);
        }
        internal ApplicationDataContainerSettings(ApplicationDataLocality locality, string name)
        {
            _locality = locality;
#if __ANDROID__ || WINDOWS_PHONE
            Initialize();
#elif __UNIFIED__
            Initialize(name);
#endif
        }
Beispiel #7
0
        internal static void SetValue(ApplicationDataLocality locality, string key, string value)
        {
            var parms = new ApplicationDataContainer_SetValueParams
            {
                Key      = key,
                Value    = value,
                Locality = locality.ToStringInvariant()
            };

            TSInteropMarshaller.InvokeJS("UnoStatic_Windows_Storage_ApplicationDataContainer:setValue", parms);
        }
Beispiel #8
0
        internal static int GetCount(ApplicationDataLocality locality)
        {
            var parms = new ApplicationDataContainer_GetCountParams
            {
                Locality = locality.ToStringInvariant()
            };

            var ret = (ApplicationDataContainer_GetCountReturn)TSInteropMarshaller.InvokeJS("UnoStatic_Windows_Storage_ApplicationDataContainer:getCount", parms, typeof(ApplicationDataContainer_GetCountReturn));

            return(ret.Count);
        }
Beispiel #9
0
        internal static string GetValueByIndex(ApplicationDataLocality locality, int index)
        {
            var parms = new ApplicationDataContainer_GetValueByIndexParams
            {
                Locality = locality.ToStringInvariant(),
                Index    = index
            };

            var ret = (ApplicationDataContainer_GetValueByIndexReturn)TSInteropMarshaller.InvokeJS("UnoStatic_Windows_Storage_ApplicationDataContainer:getValueByIndex", parms, typeof(ApplicationDataContainer_GetValueByIndexReturn));

            return(ret.Value);
        }
Beispiel #10
0
        internal static bool Remove(ApplicationDataLocality locality, string key)
        {
            var parms = new ApplicationDataContainer_RemoveParams
            {
                Locality = locality.ToStringInvariant(),
                Key      = key
            };

            var ret = (ApplicationDataContainer_RemoveReturn)TSInteropMarshaller.InvokeJS("UnoStatic_Windows_Storage_ApplicationDataContainer:remove", parms, typeof(ApplicationDataContainer_RemoveReturn));

            return(ret.Removed);
        }
Beispiel #11
0
        internal static bool ContainsKey(ApplicationDataLocality locality, string key)
        {
            var parms = new ApplicationDataContainer_ContainsKeyParams
            {
                Key      = key,
                Locality = locality.ToStringInvariant()
            };

            var ret = (ApplicationDataContainer_ContainsKeyReturn)TSInteropMarshaller.InvokeJS("UnoStatic_Windows_Storage_ApplicationDataContainer:containsKey", parms, typeof(ApplicationDataContainer_ContainsKeyReturn));

            return(ret.ContainsKey);
        }
        public static async Task <bool> ClearAsync(ApplicationDataLocality locality)
        {
            try
            {
                await ApplicationData.Current.ClearAsync(locality);

                return(true);
            }
            catch
            {
                return(false);
            }
        }
Beispiel #13
0
        internal static bool TryGetValue(ApplicationDataLocality locality, string key, out string?value)
        {
            var parms = new ApplicationDataContainer_TryGetValueParams
            {
                Key      = key,
                Locality = locality.ToStringInvariant()
            };

            var ret = (ApplicationDataContainer_TryGetValueReturn)TSInteropMarshaller.InvokeJS("UnoStatic_Windows_Storage_ApplicationDataContainer:tryGetValue", parms, typeof(ApplicationDataContainer_TryGetValueReturn));

            value = ret.Value;

            return(ret.HasValue);
        }
Beispiel #14
0
        public void Set <T>(string key, T value, ApplicationDataLocality dataLocality)
        {
            if (key == null)
            {
                throw new ArgumentNullException(nameof(key));
            }

            switch (dataLocality)
            {
            case ApplicationDataLocality.Local:
            {
                object set = value;
                if (typeof(T).GetTypeInfo().IsEnum)
                {
                    set = Convert.ChangeType(value, Enum.GetUnderlyingType(typeof(T)));
                }
                ApplicationData.Current.LocalSettings.Values[key] = set;
                RaisePropertyChanged(key);
                break;
            }

            case ApplicationDataLocality.Roaming:
            {
                object set = value;
                if (typeof(T).GetTypeInfo().IsEnum)
                {
                    set = Convert.ChangeType(value, Enum.GetUnderlyingType(typeof(T)));
                }
                var applicationData = ApplicationData.Current;
                applicationData.RoamingSettings.Values[key] = set;
                RaisePropertyChanged(key);
                applicationData.SignalDataChanged();
                break;
            }

            case ApplicationDataLocality.Temporary:
                throw new NotSupportedException();

            case ApplicationDataLocality.LocalCache:
                throw new NotSupportedException();

            default:
                throw new ArgumentOutOfRangeException(nameof(dataLocality));
            }
        }
Beispiel #15
0
        public bool Remove(string key, ApplicationDataLocality dataLocality)
        {
            if (key == null)
            {
                throw new ArgumentNullException(nameof(key));
            }

            bool result;

            switch (dataLocality)
            {
            case ApplicationDataLocality.Local:
                result = ApplicationData.Current.LocalSettings.Values.Remove(key);
                break;

            case ApplicationDataLocality.Roaming:
                var applicationData = ApplicationData.Current;
                result = applicationData.RoamingSettings.Values.Remove(key);
                if (result)
                {
                    applicationData.SignalDataChanged();
                }
                break;

            case ApplicationDataLocality.Temporary:
                throw new NotSupportedException();

            case ApplicationDataLocality.LocalCache:
                throw new NotSupportedException();

            default:
                throw new ArgumentOutOfRangeException(nameof(dataLocality));
            }

            if (result)
            {
                RaisePropertyChanged(key);
            }
            return(result);
        }
Beispiel #16
0
        public T Get <T>(string key, ApplicationDataLocality dataLocality, Func <T> defaultValue = null)
        {
            if (key == null)
            {
                throw new ArgumentNullException(nameof(key));
            }

            switch (dataLocality)
            {
            case ApplicationDataLocality.Local:
            {
                object value;
                if (ApplicationData.Current.LocalSettings.Values.TryGetValue(key, out value))
                {
                    return((T)value);
                }
                return(defaultValue != null?defaultValue() : default(T));
            }

            case ApplicationDataLocality.Roaming:
            {
                object value;
                if (ApplicationData.Current.RoamingSettings.Values.TryGetValue(key, out value))
                {
                    return((T)value);
                }
                return(defaultValue != null?defaultValue() : default(T));
            }

            case ApplicationDataLocality.Temporary:
                throw new NotSupportedException();

            case ApplicationDataLocality.LocalCache:
                throw new NotSupportedException();

            default:
                throw new ArgumentOutOfRangeException(nameof(dataLocality));
            }
        }
Beispiel #17
0
        /// <summary>
        /// Removes all application data from the specified app data store.
        /// </summary>
        /// <param name="locality">One of the enumeration values.</param>
        /// <returns></returns>
        public Task ClearAsync(ApplicationDataLocality locality)
        {
            return(Task.Run(async() =>
            {
                switch (locality)
                {
                case ApplicationDataLocality.Local:
                    await LocalFolder?.DeleteAllItems();
                    LocalSettings?.Values.Clear();
                    break;

                case ApplicationDataLocality.Roaming:
                    await RoamingFolder?.DeleteAllItems();
                    RoamingSettings?.Values.Clear();
                    break;

                case ApplicationDataLocality.Temporary:
                    await TemporaryFolder?.DeleteAllItems();
                    break;
                }
            }));
        }
Beispiel #18
0
 internal ApplicationDataContainer(ApplicationDataLocality locality, string name)
 {
     _locality = locality;
     _name     = name;
     _settings = new ApplicationDataContainerSettings(locality, name);
 }
Beispiel #19
0
 public override void StartContainers(ApplicationDataLocality locality)
 {
     WriteIndent();
     writer.WriteLine("<Containers locality='{0}'>", locality.ToString());
     Indent();
 }
Beispiel #20
0
 public Foundation.IAsyncAction ClearAsync(ApplicationDataLocality locality)
 {
     throw new NotImplementedException("The member IAsyncAction ApplicationData.ClearAsync(ApplicationDataLocality locality) is not implemented in Uno.");
 }
 public override void StartContainers(ApplicationDataLocality locality)
 {
 }
        public static async Task<bool> ClearAsync(ApplicationDataLocality locality)
        {
            try
            {
                await ApplicationData.Current.ClearAsync(locality);

                return true;
            }
            catch
            {
                return false;
            }
        }
Beispiel #23
0
 public abstract void StartContainers(ApplicationDataLocality locality);
 internal ApplicationDataContainer(ApplicationDataLocality locality, string name)
 {
     _locality = locality;
     _name = name;
     _settings = new ApplicationDataContainerSettings(locality, name);
 }