internal void setFailed(IdentityHttpResponse onFailure) { _failure = onFailure; foreach (OnFailure listener in _onFailureListeners) { listener.Invoke(_failure); } }
public void OnTaskFailure(string failureMessage) { //parse the IdentityHttpResponse Error error = new Error(); var message = JsonUtility.FromJson <OnTaskFailureMessage>(failureMessage); if (String.IsNullOrEmpty(message.CallbackUuid)) { Debug.Log("CallbackID not provided, aborting OnTaskFailure callback:\n" + JsonUtility.ToJson(message)); return; } if (!String.IsNullOrEmpty(message.ErrorCode)) { error.Code = message.ErrorCode; } String errorMessage = ""; if (!String.IsNullOrEmpty(message.Domain)) { errorMessage += "Domain: " + message.Domain; } if (!String.IsNullOrEmpty(message.UserInfo)) { if (!String.IsNullOrEmpty(message.Domain)) { errorMessage += "\n"; } errorMessage += "User Info: " + message.UserInfo; } IdentityHttpResponse identityHttpResponse = new IdentityHttpResponse() { Errors = new List <Error> { error }, IsSuccessful = false }; int httpCode; if (!String.IsNullOrEmpty(message.ErrorCode) && Int32.TryParse(message.ErrorCode, out httpCode)) { identityHttpResponse.HttpCode = httpCode; } //Invoke the delegate with the specified callback Id BaseTask foundTask; if (_taskCallbacks.TryGetValue(message.CallbackUuid, out foundTask)) { if (foundTask != null) { foundTask.setFailed(identityHttpResponse); } } }