private void LogoutList_OnItemTapped(object sender, ItemTappedEventArgs e) { var Item = e.Item as LogoutItems; if (Item.Label == AppResources.Label_Logout) { Logout().ConfigureAwait(false); SQL_Commander.ClearLoginCredentialsList(); SQL_Commander.ClearProfileCredentialsList(); SQL_Commander.ClearMessageList(); SQL_Commander.DeletAllChatUsersList(); SQL_Commander.ClearNotifiDBCredentialsList(); SQL_Commander.ClearPrivacyDBCredentialsList(); SQL_Commander.ClearChatUserTable(); SQL_Commander.DeletAllChatUsersList(); try { WowonderPhone.Settings.ReLogin = true; Navigation.PopAsync(); App.GetLoginPage(); } catch { Navigation.RemovePage(this); App.GetLoginPage(); } } }
async void OnLoginClicked(object sender, EventArgs e) { try { var answer = await DisplayAlert(AppResources.Label_Security, AppResources.Label_WouldYouLikeToSaveYourPassword, AppResources.Label_Yes, AppResources.Label_NO); var device = Resolver.Resolve <IDevice>(); var oNetwork = device.Network; // Create Interface to Network-functions var xx = oNetwork.InternetConnectionStatus() == NetworkStatus.NotReachable; if (xx == true) { await DisplayAlert(AppResources.Label_Error, AppResources.Label_CheckYourInternetConnection, AppResources.Label_OK); } else { var StatusApiKey = ""; using (var client = new HttpClient()) { Settings.Session = RandomString(70); UserDialogs.Instance.ShowLoading(AppResources.Label_Loading, MaskType.Gradient); var SettingsValues = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("windows_app_version", Settings.Version), }); var responseSettings = await client.PostAsync(Settings.Website + "/app_api.php?type=get_settings", SettingsValues); responseSettings.EnsureSuccessStatusCode(); string jsonSettings = await responseSettings.Content.ReadAsStringAsync(); var dataSettings = JsonConvert.DeserializeObject <Dictionary <string, object> >(jsonSettings); string apiStatusSettings = dataSettings["api_status"].ToString(); if (apiStatusSettings == "200") { JObject settings = JObject.FromObject(dataSettings["config"]); if (Settings.API_ID == settings["widnows_app_api_id"].ToString() && Settings.API_KEY == settings["widnows_app_api_key"].ToString()) { StatusApiKey = "true"; } else { StatusApiKey = "false"; } Settings.Onesignal_APP_ID = settings["push_id"].ToString(); OneSignalNotificationController.RegisterNotificationDevice(); if (settings["footer_background"].ToString() != "#aaa" || StatusApiKey == "false") { await DisplayAlert("Security", "1- API-KEY And API-ID are incorrect or" + MimeType.Wrong + MimeType.Wrong2, "Yes"); UserDialogs.Instance.HideLoading(); return; } } if (StatusApiKey == "true") { var TimeZoneContry = "UTC"; try { var formContenst = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("username", usernameEntry.Text), }); var responseTime = await client.PostAsync("http://ip-api.com/json/", formContenst); string jsonres = await responseTime.Content.ReadAsStringAsync(); var datares = JsonConvert.DeserializeObject <Dictionary <string, object> >(jsonres); string ResulttimeZone = datares["status"].ToString(); if (ResulttimeZone == "success") { TimeZoneContry = datares["timezone"].ToString(); } } catch (Exception) { } var formContent = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("username", usernameEntry.Text), new KeyValuePair <string, string>("password", passwordEntry.Text), new KeyValuePair <string, string>("timezone", TimeZoneContry), new KeyValuePair <string, string>("device_id", Settings.Device_ID), new KeyValuePair <string, string>("s", Settings.Session) }); var response = await client.PostAsync( Settings.Website + "/app_api.php?application=phone&type=user_login", formContent); response.EnsureSuccessStatusCode(); string json = await response.Content.ReadAsStringAsync(); var data = JsonConvert.DeserializeObject <Dictionary <string, object> >(json); string apiStatus = data["api_status"].ToString(); if (apiStatus == "200") { Settings.User_id = data["user_id"].ToString(); SQL_Commander.ClearChatUserTable(); SQL_Commander.ClearContactTable(); await LoginUserFunctions.GetSessionProfileData(Settings.User_id, Settings.Session); //await Functions.GetChatActivity(Settings.User_id, Settings.Session); if (answer) { LoginTableDB LoginData = new LoginTableDB(); LoginData.ID = 1; LoginData.Password = passwordEntry.Text; LoginData.Username = usernameEntry.Text; LoginData.Session = Settings.Session; LoginData.UserID = Settings.User_id; LoginData.Onesignal_APP_ID = Settings.Onesignal_APP_ID; LoginData.Status = "Active"; SQL_Commander.InsertLoginCredentials(LoginData); } UserDialogs.Instance.HideLoading(); try { if (Settings.ReLogin) { //await Navigation.PopAsync(); //await Navigation.PushAsync(new MasterMainSlidePage()); } else { App.GetMainPage(); UserDialogs.Instance.HideLoading(); } } catch { await Navigation.PopModalAsync(); } } else if (apiStatus == "400") { UserDialogs.Instance.HideLoading(); JObject errors = JObject.FromObject(data["errors"]); var errortext = errors["error_text"].ToString(); var ErrorMSG = await DisplayAlert(AppResources.Label_Security, errortext, AppResources.Label_Retry, AppResources.Label_Forget_My_Password); if (ErrorMSG == false) { await Navigation.PushModalAsync(new ForgetPasswordpage()); } } } else { await DisplayAlert("Security", "1- API-KEY And API-ID are incorrect or" + MimeType.Wrong + MimeType.Wrong2, "Yes"); UserDialogs.Instance.HideLoading(); } } } } catch (Exception ex) { UserDialogs.Instance.HideLoading(); await DisplayAlert("Server ERROR", ex.ToString(), "Yes"); } }