//REFACTOR public IEnumerator UpdateSeconds() { var gameID = Resources.LoadAll <RewardMobData>("")[0].GameId; var webRequest = new WWW(RewardMobEndpoints.GetTournamentTimeRemainingEndpoint() + gameID); //halt execution until request returns yield return(webRequest); float.TryParse(webRequest.text, out secondsRemaining); }
private IEnumerator GetTimeLeftAndUpdate() { //grab game id, and prepare web request var gameID = Resources.LoadAll <RewardMobData>("")[0].GameId; var webRequest = new WWW(RewardMobEndpoints.GetTournamentTimeRemainingEndpoint() + gameID); //halt execution until request returns yield return(webRequest); float.TryParse(webRequest.text, out secondsRemaining); //invoke time update InvokeRepeating("UpdateTime", 0f, 1.0f); }
/// <summary> /// Asynchronous method to send Reward off to API /// /// TODO: Should be split into more defined methods. /// </summary> /// <param name="rewardAmount">The amount of rewards to send.</param> /// <param name="rewardMessage">A short description explaining why the rewards were earned.</param> /// <returns>Cor</returns> private IEnumerator SendRewardCor(int rewardAmount, string rewardMessage, Action <Reward> onSuccess, Action <string> onFailed) { //check time remaining var webRequest = new WWW(RewardMobEndpoints.GetTournamentTimeRemainingEndpoint() + RewardMob.instance.gameID); //halt execution until request returns yield return(webRequest); float secondsRemaining; float.TryParse(webRequest.text, out secondsRemaining); //if there's no time remaining, don't bother if (secondsRemaining <= 0) { yield break; } //check if the reward is "cacheworthy" if (ShouldCache()) { Cache(new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage, System.DateTime.UtcNow.ToString())); //update the user onSuccess(new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage)); yield break; } //prepare the request var requestData = RewardMobWebRequestFactory.CreateRewardRequest(rewardAmount, rewardMessage); WWW postRewardRequest = new WWW(RewardMobEndpoints.GetSingleRewardEndpoint(), requestData.Payload, requestData.Headers); yield return(postRewardRequest); HandleRewardRequestClientsideUpdate(postRewardRequest, new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage), onSuccess, onFailed); //if we got an authorization error, cache it! if (!string.IsNullOrEmpty(postRewardRequest.error)) { Cache(new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage, System.DateTime.UtcNow.ToString())); } }