Beispiel #1
0
        /// <summary>
        /// Select User
        /// </summary>
        public SelectUser()
        {
            InitializeComponent();

            NavigationPage.SetBackButtonTitle(this, string.Empty);

            BindingContext = _viewModel = new UsersViewModel(this);

            if (HaccpAppSettings.SharedInstance.IsWindows)
            {
                AddToolBarButton("home.png", _viewModel.HomeCommand);
            }


            UserListview.ItemSelected += (sender, e) => {
                try {
                    //	if (viewModel.IsBusy)
                    //	return;
                    //


                    if (UserListview.SelectedItem == null)
                    {
                        return;
                    }


                    //viewModel.IsBusy = true;

                    if (_viewModel.isViewAppeared)
                    {
                        var selectedUserId = ((User)UserListview.SelectedItem).Id;
                        _viewModel.selectedUser = (User)UserListview.SelectedItem;

                        if (selectedUserId < 1)
                        {
                            //if (!HaccpAppSettings.SharedInstance.IsWindows)
                            UserListview.SelectedItem = null;
                            //	viewModel.IsBusy = false;
                            return;
                        }

                        if (_viewModel.IsLoggedIn && HaccpAppSettings.SharedInstance.CurrentUserId == selectedUserId)
                        {
                            _viewModel.LogInCommand.Execute(null);
                            //if (!HaccpAppSettings.SharedInstance.IsWindows)
                            UserListview.SelectedItem = null;
                            //viewModel.IsBusy = false;
                            return;
                        }
                        _viewModel.SelectedUserId = selectedUserId;


                        if (HaccpAppSettings.SharedInstance.DeviceSettings.RequirePin != 1)
                        {
                            HaccpAppSettings.SharedInstance.UserName      = _viewModel.selectedUser.Name;
                            HaccpAppSettings.SharedInstance.CurrentUserId = selectedUserId;
                            HaccpAppSettings.SharedInstance.Permission    = _viewModel.selectedUser.Permision;
                            Settings.LastLoginUserId = selectedUserId;
                            EndEditing();
                            PopPage();
                        }
                        else
                        {
                            _viewModel.OnPropertyChanged("DisplayPasswordPopup");
                            passwordTextBox.Focus();
                        }

                        //if (!HaccpAppSettings.SharedInstance.IsWindows)
                        UserListview.SelectedItem = null;

                        //viewModel.IsBusy = false;
                    }
                    else
                    {
                        return;
                    }
                } catch (Exception ex) {
                    Debug.WriteLine("UserListview.ItemSelected Error : {0}", ex.Message);

                    //viewModel.IsBusy = false;
                }
            };


            try {
                if (HaccpAppSettings.SharedInstance.CurrentUserId > 0)
                {
                    if (HaccpAppSettings.SharedInstance.IsWindows)
                    {
                        Device.StartTimer(new TimeSpan(0, 0, 1), () => {
                            UserListview.ScrollTo(_viewModel.LoggedUser, ScrollToPosition.Center, false);
                            return(false);
                        });
                    }
                    else
                    {
                        UserListview.ScrollTo(_viewModel.LoggedUser, ScrollToPosition.Center, false);
                    }
                }
                else
                {
                    if (HaccpAppSettings.SharedInstance.IsWindows)
                    {
                        Device.StartTimer(new TimeSpan(0, 0, 1), () => {
                            var lastLoggedUser = _viewModel.Users.SingleOrDefault(u => u.Id == Settings.LastLoginUserId);
                            if (lastLoggedUser != null)
                            {
                                UserListview.ScrollTo(lastLoggedUser, ScrollToPosition.Center, false);
                            }
                            return(false);
                        });
                    }
                    else
                    {
                        var lastLoggedUser = _viewModel.Users.SingleOrDefault(u => u.Id == Settings.LastLoginUserId);
                        if (lastLoggedUser != null)
                        {
                            UserListview.ScrollTo(lastLoggedUser, ScrollToPosition.Center, false);
                        }
                    }
                }
            } catch (Exception ex) {
                Debug.WriteLine(ex.Message);
            }
        }