private async void RegisterNewUserAction() { if (NewUserEmail == null || NewUserName == null || NewUserPassword == null || NewUserPasswordConfirm == null) { await App.Current.MainPage.DisplayAlert("Error", "Email, Name and Password are not optional", "OK"); return; } if (NewUserPassword != NewUserPasswordConfirm) { await App.Current.MainPage.DisplayAlert("Error", "Passwords must match, please make sure of that in order to reset the password", "OK"); return; } if (NewUserEmail != "" && NewUserPassword != "") { Func <Task> registerNewUser = async() => { MowardsUser NewUser = new MowardsUser() { Email = NewUserEmail, Password = NewUserPassword, BirthDate = NewUserBirthDate, Country = NewUserCountry, Fullname = NewUserName //Picture = NewUserPicture }; var response = await HttpClient.PostDetails <string, MowardsUser>( Utils.USER_URL, NewUser, true); if (response == "User was created.") { Func <Task> executeLogin = async() => { Username = NewUserEmail; Password = NewUserPassword; await ExecuteLogin(); }; await ExecuteSafeOperation(executeLogin); } }; await ExecuteSafeOperation(registerNewUser); } }
private async void SaveEditUser() { Func <Task> saveEditUser = new Func <Task>( async() => { MowardsHttp client = new MowardsHttp(); string url = Utils.USER_URL; MowardsUser usr = new MowardsUser() { Email = CurrentUser.Email, Fullname = EditUserNewFullName, BirthDate = EditUserNewBirthday, Country = EditUserNewCountry }; CurrentUser = await client.Put <MowardsUser>( url, usr); //CurrentUser.Picture = "User_104px.png"; await App.Current.MainPage.DisplayAlert("Result", CurrentUser.Email + " has been edited!", "OK"); SetEditValuesCurrentUser(); } ); await ExecuteSafeOperation(saveEditUser); }
private async Task ExecuteLogin() { LoginInfo userCredentials = new LoginInfo() { Username = Username, Password = Password }; var tokenInformation = await HttpClient.PostDetails <TokenInformation, LoginInfo>( Utils.AUTH_CONTROLLER, userCredentials, true); if (App.Current.Properties.ContainsKey(Utils.TOKEN_KEY)) { App.Current.Properties[Utils.TOKEN_KEY] = tokenInformation.Token; } else { App.Current.Properties.Add(Utils.TOKEN_KEY, tokenInformation.Token); } userCredentials.Token = tokenInformation.Token; if (RememberMe) { var realmInstance = Realm.GetInstance(Utils.REALM_DB_NAME); var localUserData = realmInstance.All <LoginInfo>().Where( user => user.Username == Username); if (localUserData.Count() == 0) { realmInstance.Write(() => { realmInstance.Add(userCredentials); }); } else { var userInstance = localUserData.FirstOrDefault(); if (userInstance.Token != userCredentials.Token) { realmInstance.Write(() => userInstance.Token = userCredentials.Token); } } localUserData.Count(); } //Next Line to be discussed as how to set current user information. UserViewModel uvm = ViewModelFactory.GetInstance <UserViewModel>(); MowardsUser mu = await uvm.SetUserFullInformation(Username); NavigationPage navigation = new NavigationPage(new MasterDetailContent()); ContentPage menu = new MasterDetailMenu(); navigation.BarBackgroundColor = Color.Black; navigation.BarTextColor = Color.White; App.Current.MainPage = new MasterDetailMaster { Master = menu, Detail = navigation }; //App.Current.MainPage = new CategoriesFilterView(); }