Пример #1
0
        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();
                }
            }
        }
Пример #2
0
        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");
            }
        }