public void AddAuthIdentity(AuthIdentity authIdentity, Action onComplete, Action <GetSocialError> onFailure, Action <ConflictUser> onConflict) { var identity = authIdentity.ToRpcModel(); LogRequest("addIdentity", identity); WithHadesClient(client => { try { User = client.addIdentity(SessionId, authIdentity.ToRpcModel()); Ui(() => { LogResponse("addIdentity", User); onComplete.SafeCall(); }); } catch (THErrors errors) { var errorCode = errors.Errors.First().ErrorCode; if (errorCode == THErrorCode.EMResourceAlreadyExists || errorCode == THErrorCode.IdentityAlreadyExists) { var conflictUser = client.getPrivateUserByIdentity(SessionId, identity).ToConflictUser(); Ui(() => { LogResponse("addIdentity", "Conflict user: " + conflictUser); onConflict.SafeCall(conflictUser); }); } } }, onFailure); }
public void SwitchUser(AuthIdentity authIdentity, Action onSuccess, Action <GetSocialError> onFailure) { var request = new THSdkAuthRequest { AppId = _stateController.AppId, SessionProperties = _stateController.SuperProperties }; var identity = authIdentity.ToRpcModel(); LogRequest("switchUser", identity); WithHadesClient(client => { var user = client.getPrivateUserByIdentity(SessionId, identity); request.UserId = user.Id; request.Password = user.Password; var response = client.authenticateSdk(request); Ui(() => { LogResponse("switchUser", response); _stateController.SaveSession(response.SessionId, response.User); onSuccess.SafeCall(); }); }, onFailure); }