async void ExecuteFinalizarSesionCommand() { UserDialogs.Instance.ShowLoading(AppResources.ShowLoadingTitle); string accessToken; try { accessToken = await _secureStorage.GetAsync(RiskConstants.ACCESS_TOKEN); } catch (Exception ex) { accessToken = string.Empty; } DatoRespuesta respuestaFinalizarSesion = null; try { respuestaFinalizarSesion = await _autApi.FinalizarSesionAsync(null, new FinalizarSesionRequestBody { AccessToken = accessToken }); if (respuestaFinalizarSesion.Codigo.Equals(RiskConstants.CODIGO_OK)) { _secureStorage.Remove(RiskConstants.ACCESS_TOKEN); _secureStorage.Remove(RiskConstants.REFRESH_TOKEN); App.Current.Properties[RiskConstants.IS_USER_LOGGED_IN] = false; await NavigationService.NavigateAsync("/LoginPage"); } else { await UserDialogs.Instance.AlertAsync("Error al finalizar sesión"); } } catch (ApiException ex) { if (ex.ErrorCode.Equals(401)) { _secureStorage.Remove(RiskConstants.ACCESS_TOKEN); _secureStorage.Remove(RiskConstants.REFRESH_TOKEN); App.Current.Properties[RiskConstants.IS_USER_LOGGED_IN] = false; await NavigationService.NavigateAsync("/LoginPage"); } else { await UserDialogs.Instance.AlertAsync("Error al finalizar sesión"); } } catch (Exception ex) { await UserDialogs.Instance.AlertAsync("Error al finalizar sesión"); } UserDialogs.Instance.HideLoading(); }
protected override async void OnInitialized() { InitializeComponent(); if (!this.Properties.ContainsKey(RiskConstants.IS_USER_LOGGED_IN)) { this.Properties[RiskConstants.IS_USER_LOGGED_IN] = false; } if (!this.Properties.ContainsKey(RiskConstants.IS_CONNECTED)) { this.Properties[RiskConstants.IS_CONNECTED] = false; } var autApi = Container.Resolve <IAutApi>(); var genApi = Container.Resolve <IGenApi>(); var appInfo = Container.Resolve <IAppInfo>(); var deviceInfo = Container.Resolve <IDeviceInfo>(); var secureStorage = Container.Resolve <ISecureStorage>(); var connectivity = Container.Resolve <IConnectivity>(); // Registra evento ConnectivityChanged connectivity.ConnectivityChanged += Connectivity_ConnectivityChanged; // Valida conexión a Internet if (connectivity.NetworkAccess != NetworkAccess.Internet) { this.Properties[RiskConstants.IS_CONNECTED] = false; await NavigationService.NavigateAsync("/NoConnectionPage"); return; } AplicacionPaginaRespuesta respuestaListarAplicaciones = null; try { respuestaListarAplicaciones = genApi.ListarAplicaciones(null, "azVd94zazPu/+q5ZHqoL1v6wccamHV3oWoALYWQK0Z8="); } catch (Exception) { await UserDialogs.Instance.AlertAsync("La aplicación no está activa"); } if (respuestaListarAplicaciones.Codigo.Equals(RiskConstants.CODIGO_OK)) { var aplicacion = respuestaListarAplicaciones.Datos.Elementos[0]; // Valida si la aplicación está activa if (!aplicacion.Activo) { await UserDialogs.Instance.AlertAsync("La aplicación no está activa"); } // Valida versión de la aplicación Version versionAplicacion = new Version(appInfo.VersionString); Version versionServidor = new Version(aplicacion.VersionActual); switch (versionAplicacion.CompareTo(versionServidor)) { case 0: //Console.Write("the same as"); break; case 1: //Console.Write("later than"); break; case -1: //Console.Write("earlier than"); await UserDialogs.Instance.AlertAsync("Es necesaria una actualización de la aplicación"); break; } } // Registra dispositivo string deviceToken; try { deviceToken = await secureStorage.GetAsync(RiskConstants.DEVICE_TOKEN); } catch (Exception ex) { deviceToken = string.Empty; } DatoRespuesta datoRespuesta = autApi.RegistrarDispositivo(null, new RegistrarDispositivoRequestBody { Dispositivo = new Dispositivo { IdDispositivo = 0, TokenDispositivo = deviceToken, NombreSistemaOperativo = deviceInfo.Platform.ToString(), VersionSistemaOperativo = deviceInfo.VersionString, Tipo = TipoDispositivo.Mobile } }); if (datoRespuesta.Codigo.Equals(RiskConstants.CODIGO_OK)) { await secureStorage.SetAsync(RiskConstants.DEVICE_TOKEN, datoRespuesta.Datos.Contenido); } if ((bool)this.Properties[RiskConstants.IS_USER_LOGGED_IN]) { await NavigationService.NavigateAsync("/NavigationPage/MainPage"); } else { await NavigationService.NavigateAsync("/LoginPage"); } }