private static string checkUserLogin() { if (String.IsNullOrEmpty(Settings.Username)) //user not logged in { Console.WriteLine("No username"); return("false"); } else { if (Settings.Role == "user") { //Send HTTP request to log user in Task <string> httpTask = Task.Run <string>(() => HttpRequestHandler.PostUserLogin(Settings.Username, Settings.Password)); var httpResult = httpTask.Result.ToString(); Console.WriteLine("User runned"); Console.WriteLine("HTTP Result: " + httpResult); if (httpResult == "Login successful!") { Console.WriteLine("User returned"); return("user"); } else { return("false"); } } else { //Login as admin Task <string> httpTask = Task.Run <string>(() => HttpRequestHandler.PostAdminLogin(Settings.Username, Settings.Password)); var httpResult = httpTask.Result.ToString(); Console.WriteLine("HTTP Result for admin: " + httpResult); if (httpResult != "admin" && httpResult != "editor") { return("false"); } else { adminAuth.saveCredentials(Settings.Username, Settings.Password); userSession.adminRole = httpResult; return("admin"); } } } }
async void onLoginBtnClicked(object sender, EventArgs e) { errorLbl.Text = ""; bool isInputsValid = true; string username = "", password = ""; if (String.IsNullOrEmpty(userIdEntry.Text) || String.IsNullOrWhiteSpace(userIdEntry.Text)) { errorLbl.Text += "Please enter User Id. "; isInputsValid = false; } if (String.IsNullOrEmpty(passwordEntry.Text) || String.IsNullOrWhiteSpace(passwordEntry.Text)) { errorLbl.Text += "Please enter your password."; isInputsValid = false; } if (isInputsValid) { activityIndicator.IsVisible = true; activityIndicator.IsRunning = true; username = userIdEntry.Text; password = passwordEntry.Text; //Send HTTP request to log user in string httpTask = await Task.Run <string>(() => HttpRequestHandler.PostAdminLogin(username, password)); var httpResult = httpTask.ToString(); //Data extraction to get admin login status from HTTP response //var extractionTask = await Task.Run<Object>(() => DataExtraction.getWebData(httpResult, "adminLoginPage")); //var status = await DataExtraction.getWebData(httpResult, "adminLoginPage"); activityIndicator.IsVisible = false; activityIndicator.IsRunning = false; //if login success, save the user account with Xamarin.Auth if (httpResult != "admin" && httpResult != "editor") { errorLbl.Text = "Login failed! Please try again."; } else { adminAuth.saveCredentials(username, password); userSession.adminRole = httpResult; Console.WriteLine("Admin login: "******"Login success! You will be redirected soon"; await Task.Delay(1000); //errorLbl.TextColor = Color.Red; //errorLbl.Text = ""; //await Navigation.PushAsync(new tenderPage()); //App.Current.MainPage = new rootPage { Detail = new NavigationPage(new tenderEligiblePage()) }; App.Current.MainPage = new rootPage(false); //rootPage.changeDetailPage(typeof(tenderPage)); } } }