public async Task <AppConfigData> GetAppConfigData() { if (DateTime.UtcNow > AppConstants.TimeToLiveExpiration || String.IsNullOrEmpty(AppConstants.ClientConfigurationVersion)) { // get Amazon.AppConfig.Model.GetConfigurationResponse from GetConfiguration API Call GetConfigurationResponse getConfigurationResponse = await _appConfigService.GetConfigurationResponse(); AppConstants.ClientConfigurationVersion = getConfigurationResponse.ConfigurationVersion; string decodedResponseData = getConfigurationResponse.Content.Length > 0 ? getConfigurationResponse.Content.DecodeMemoryStreamToString() : String.Empty; // convert DecodedResponseData to our AppConfigData model which consists of: AppConfigData appConfigData = String.IsNullOrEmpty(decodedResponseData) ? AppConstants.AppConfigData : JsonConvert.DeserializeObject <AppConfigData>(decodedResponseData); //AppConfigData appConfigData = JsonConvert.DeserializeObject<AppConfigData>(decodedResponseData); if (!appConfigData.BoolEnableLimitResults && appConfigData.IntResultLimit == 0) { throw new Exception(); } // add AppConfigData to our cache in AppConstants AppConstants.AppConfigData = appConfigData; return(AppConstants.AppConfigData); } else { Console.WriteLine("DID NOT call GetConfigurationAPI to get data. Return AppConfigData from cached value in AppConstants.AppConfigData instead. \n"); return(AppConstants.AppConfigData); } }
private void SaveEnvironmentSelection(int appID, string appPhotonID, AppConfig.Environment environment, string deviceId) { AppConfigData newAppConfigData = new AppConfigData(); newAppConfigData.appID = appID; newAppConfigData.appPhotonID = appPhotonID; newAppConfigData.currentEnvironment = environment; newAppConfigData.debugDeviceId = deviceId; AppConfigHelper.SaveAppConfigData(newAppConfigData); }
public static AppConfigData LoadAppConfigDataFromTextAsset(TextAsset textAsset) { AppConfigData appConfigData = null; string appConfigDataJson = textAsset.text; if (!string.IsNullOrEmpty(appConfigDataJson)) { appConfigData = TimiSharedSerializer.Deserialize <AppConfigData>(appConfigDataJson); } return(appConfigData); }
public static void SaveAppConfigData(AppConfigData appConfigData) { if (!Application.isEditor) { throw new NotImplementedException("Not yet supported to edit app config on device"); } string appConfigDataJson = TimiSharedSerializer.Serialize(appConfigData); if (!string.IsNullOrEmpty(appConfigDataJson)) { TimiSharedURI appConfigFileUri = AppConfigHelper.AppConfigFileURI; using (Stream appConfigFileStream = FileLoader.GetFileStreamSync(appConfigFileUri, FileMode.Create, FileAccess.Write)) { FileUtils.PutStreamContents(appConfigFileStream, appConfigDataJson); appConfigFileStream.Close(); } } }
public async Task <AppConfigData> GetAppConfigData() { // In general, we should limit the calls to GetConfiguration API call to at least once every 15 seconds // In AppConstants the TimeToLiveExpiration is set to the initial DateTime of Program.cs execution plus AppConstants.TimeToLiveInSeconds (15 seconds) // This if condition makes sure that we only call the GetConfiguration API call if we have not exceeded the TTL expiration, or // if the ClientConfigurationVersion is set in our local cache in AppConstants - ClientConfigurationVersion is returned from the initial call to the GetConfiguration API (see below for more info) if (DateTime.UtcNow > AppConstants.TimeToLiveExpiration || String.IsNullOrEmpty(AppConstants.ClientConfigurationVersion)) { Console.WriteLine("CALLED GetConfigurationAPI to get AppConfigData \n"); IAppConfigService appConfigService = new AppConfigService(_clientId); // get Amazon.AppConfig.Model.GetConfigurationResponse from GetConfiguration API Call GetConfigurationResponse getConfigurationResponse = await appConfigService.GetConfigurationResponse(); // add ConfigurationVersion to AppConstants to AppConstants to be used in subsequent calls to GetConfugration API to avopid excess charges // https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_GetConfiguration.html#API_GetConfiguration_RequestSyntax AppConstants.ClientConfigurationVersion = getConfigurationResponse.ConfigurationVersion; // The GetConfiguration response includes a Content section (i.e., our getConfigurationResponse.Content) that shows the configuration data. // The Content section only appears if the system finds new or updated configuration data. // If the system doesn't find new or updated configuration data, then the Content section is not returned (Null). // https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-retrieving-the-configuration.html string decodedResponseData = getConfigurationResponse.Content.Length > 0 ? MemoryStreamHelper.DecodeMemoryStreamToString(getConfigurationResponse.Content) : String.Empty; // convert DecodedResponseData to our AppConfigData model which consists of: // bool boolEnableLimitResults // int intResultLimit AppConfigData appConfigData = this.ConvertDecodedResponseToAppConfigData(decodedResponseData); // add AppConfigData to our cache in AppConstants AppConstants.AppConfigData = appConfigData; return(AppConstants.AppConfigData); } else { Console.WriteLine("DID NOT call GetConfigurationAPI to get data. Return AppConfigData from cached value in AppConstants.AppConfigData instead. \n"); return(AppConstants.AppConfigData); } }
private void Initialize() { TextAsset appConfigTextAsset = Resources.Load <TextAsset>("BootstrapData/AppConfig"); AppConfigData appConfigData = AppConfigHelper.LoadAppConfigDataFromTextAsset(appConfigTextAsset); if (appConfigData != null) { this._appID = appConfigData.appID; this._appPhotonID = appConfigData.appPhotonID; this._currentEnvironment = appConfigData.currentEnvironment; this._deviceId = appConfigData.debugDeviceId; } else { this._currentEnvironment = AppConfig.Environment.LOCAL; } this._initialized = true; }
public MemberService(IOptions <AppConfigData> configData, IMemberRepository repository) { ConfigData = configData.Value; _repository = repository; }
private IEnumerator InitializeAsync(System.Action callback) { this._appConfigData = AppConfigHelper.LoadAppConfigDataFromTextAsset(this._appConfigTextAsset); callback.Invoke(); yield break; }
public VoteService(IOptions <AppConfigData> configData, IVoteRepository repository) { ConfigData = configData.Value; _repository = repository; }
public VoteDapSqlRepository(IOptions <AppConfigData> configData) { ConfigData = configData.Value; _connectionString = ConfigData.ConnectionString; }