private async void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
        {
            var stack = Frame.GetNavigationState();

            if (!IsNetworkAvailable())
            {
                await new MessageDialog("Please check your internet connection!").ShowAsync();
            }

            var settings = new SettingsHelper();
            if (!settings.GetRememberMeFromSettings()) return;

            var username = settings.GetUsernameFromSettings();
            var password = settings.GetPasswordFromSettings();

            txtUsername.Text = username;
            txtPassword.Password = password;
            chkRemember.IsChecked = true;

            await Login(username, password, false);
        }
        private async void UpdateButton_Click(object sender, RoutedEventArgs e)
        {
            bool error = false;

            DisableErrors();
            if (!CheckInput()) return;

            if (!txtPassword.Password.Equals(txtRepeatPassword.Password))
            {
                await new MessageDialog("Passwords do not match!").ShowAsync();
                return;
            }
            try
            {
                var existingUser = (await Service.GetTable<User>()
                    .Where(t => t.Id == App.User.Id).ToListAsync()).FirstOrDefault();
                existingUser.Password = txtPassword.Password;
                existingUser.Fullname = txtName.Text;
                existingUser.Email = txtEmail.Text;
                existingUser.Address = txtAddress.Text;
                existingUser.PhoneNumber = txtPhone.Text;
                existingUser.Type = (cmbUserType.SelectedItem as NameType).Type;
                await Service.UpdateItemAsync(existingUser);
                App.User = existingUser;

                var settings = new SettingsHelper();
                if (settings.GetRememberMeFromSettings())
                {
                    settings.SetPasswordToSettings(existingUser.Password);
                }
            }
            catch (Exception ex)
            {
                error = true;
            }

            if (error)
            {
                await new MessageDialog("Something went wrong!").ShowAsync();
                return;
            }
            Frame.GoBack();
        }
        private async Task Login(string username, string password, bool rememberMe)
        {
            ActivateLoading();
            bool error = false;
            User user = null;

            try
            {
                user = (await Service.GetTable<User>()
                    .Where(t => t.Username == username
                        && t.Password == password).ToListAsync()).FirstOrDefault();
            }
            catch (Exception ex)
            {
                error = true;
            }

            if (error)
            {
                await new MessageDialog("Something went wrong!").ShowAsync();
                return;
            }

            if (user == null)
            {
                await new MessageDialog("The username, password combination does not match!").ShowAsync();
                return;
            }

            App.User = user;

            if (rememberMe)
            {
                var settings = new SettingsHelper();
                settings.SetUsernameToSettings(username);
                settings.SetPasswordToSettings(password);
                settings.SetRememberMeToSettings(true);
            }

            switch (user.Type)
            {
                case UserType.Volunteer:
                    Frame.Navigate(typeof(MainPage));
                    break;
                case UserType.Medic:
                    Frame.Navigate(typeof(MainPage));
                    break;
                case UserType.Manager:
                    Frame.Navigate(typeof(MainPage));
                    break;
                default:
                    break;
            }
        }
 private void LogoutButton_Click(object sender, RoutedEventArgs e)
 {
     var settings = new SettingsHelper();
     settings.DeleteAll();
     
     while(Frame.CanGoBack)
     {
         Frame.GoBack();
     }
 }