コード例 #1
0
        private async void ExecuteLoginCommand(object obj)
        {
            var loader = await MaterialDialog.Instance.LoadingDialogAsync("Contact du serveur ... ", Configurations.MaterialConfig.MaterialLoadingDialogConfiguration);

            try
            {
                var currentUser = await RestService.For <Services.IBackendService>(Configurations.ServerConfig.Host).Connexion(JsonConvert.SerializeObject(new
                {
                    email      = Email,
                    motDePasse = Pwd.HashPassword()
                }));

                SecureStorageHelper.AuthKey = currentUser.Id;
                LiteDbHelper.SaveDataUser(currentUser);
                await loader.DismissAsync();

                if (string.IsNullOrEmpty(currentUser.Nom) ||
                    string.IsNullOrEmpty(currentUser.Postnom) ||
                    string.IsNullOrEmpty(currentUser.Prenom) ||
                    string.IsNullOrEmpty(currentUser.Username))
                {
                    await Navigation.PushAsync(new Views.FirstUpdatePage());
                }
                else
                {
                    await Navigation.PushAsync(new Views.HomePage());
                }
            }
            catch (Exception e)
            {
                await loader.DismissAsync();

                if (e is Refit.ApiException)
                {
                    await MaterialDialog.Instance.SnackbarAsync($"{((Refit.ApiException)e).Content}", 3000, Configurations.MaterialConfig.MaterialSnackbarConfiguration);
                }
                else
                {
                    await MaterialDialog.Instance.SnackbarAsync($"Erreur: {e.Message}", 3000, Configurations.MaterialConfig.MaterialSnackbarConfiguration);
                }
            }
        }