public async Task<AppConfiguration> LoadConfigData() { try { var folder = await CreateFolderToSaveAsync(); if (folder == null) return null; var fileExists = await folder.CheckExistsAsync(FileName); if (fileExists == ExistenceCheckResult.FileExists) { var file = await folder.GetFileAsync(FileName); if (file == null) return null; var jsonData = await file.ReadAllTextAsync(); if (string.IsNullOrEmpty(jsonData)) return null; var dic = JsonConvert.DeserializeObject<Dictionary<string, AppConfigurationValue>>(jsonData); var appConfig = new AppConfiguration(); foreach (var value in dic.Values) { if (string.IsNullOrEmpty(value?.Attributes?.Name)) continue; appConfig[value.Attributes.Name] = value; } return appConfig; } } catch (Exception ex) { Debug.WriteLine(ex); } return null; }
public async Task<bool> Save(AppConfiguration appConfiguration, TimeSpan expirationTime = default(TimeSpan)) { var res = false; if (appConfiguration == null) return res; try { var folder = await CreateFolderToSaveAsync(); if (folder == null) return res; var file = await folder.CreateFileAsync(FileName, CreationCollisionOption.ReplaceExisting); if (file == null) return res; var appConfigJson = JsonConvert.SerializeObject(appConfiguration); await file.WriteAllTextAsync(appConfigJson); SetCacheExpirationTime(expirationTime); res = true; } catch (Exception ex) { Debug.WriteLine(ex); } return res; }
public async Task<bool> Save(AppConfiguration appConfiguration, TimeSpan expirationTime = default(TimeSpan)) { var res = false; if (appConfiguration == null) return res; try { var folder = await CreateFolderToSaveAsync(); if (folder == null) return res; var file = await folder.CreateFileAsync(FileName, CreationCollisionOption.ReplaceExisting); if (file == null) return res; var valuesDict = new Dictionary<string,AppConfigurationValue>(); var keys = appConfiguration.Keys; foreach (var key in keys) { if (!valuesDict.ContainsKey(key) && appConfiguration[key] != null) { valuesDict.Add(key, appConfiguration[key]); } } var appConfigJson = JsonConvert.SerializeObject(valuesDict, Formatting.Indented); await file.WriteAllTextAsync(appConfigJson); SetCacheExpirationTime(expirationTime); res = true; } catch (Exception ex) { Debug.WriteLine(ex); } return res; }
private AppConfiguration CreateAppConfigurationOutOfServerResponse(AppConfigurationServerResponse appConfigurationServerResponse) { AppConfiguration res = null; if ((appConfigurationServerResponse?.HasErrors ?? true) || !appConfigurationServerResponse.HasConfigValues) return res; res = new AppConfiguration(); foreach (var value in appConfigurationServerResponse.AppConfigValues) { if (string.IsNullOrEmpty(value?.Attributes?.Name)) continue; res[value.Attributes.Name] = value; } return res; }