Ejemplo n.º 1
0
        private void ShowLogOn()
        {
            var logon = new LogOn(_userName, _pass);

            logon.Attempts = _attempts;
            bool?res = logon.ShowDialog();

            if (!res ?? true)
            {
                Shutdown(1);
            }
            else
            {
                IDbManager       dbManager = ObjectPool.Instance.Resolve <IDbManager>();
                IDataCommand     db        = dbManager.GetDatabase(ApplicationSettings.Instance.Database.DefaultConnection.Name);
                List <UserModel> result    = db.Query <UserModel>("GetUser", new { Username = logon.UserName, Password = logon.Password });
                if (result.Any())
                {
                    string[] accessLevel;
                    switch (result[0].Type)
                    {
                    case 100:
                        accessLevel = new string[] {
                            AccessLevel.CAN_VIEW_ORDER
                        };
                        break;

                    case 900:
                        accessLevel = new string[] {
                            AccessLevel.CAN_VIEW_ORDER,
                            AccessLevel.CAN_VIEW_MASTER,
                            AccessLevel.CAN_VIEW_REPORT,
                            AccessLevel.CAN_VIEW_STOCK
                        };
                        break;

                    default:
                        accessLevel = new string[] {
                        };
                        break;
                    }
                    ObjectPool.Instance.Register <UserModel>().ImplementedBy(result[0]);
                    db.Close();
                    AuthorizationProvider.Initialize <DefaultAuthorizationProvider>(accessLevel);
                    Current.MainWindow = new MainWindow();
                    Current.MainWindow.Show();
                }
                else
                {
                    if (logon.Attempts > 2)
                    {
                        MessageBox.Show("Application is exiting due to invalid credentials", "Application Exit", MessageBoxButton.OK, MessageBoxImage.Error);
                        Shutdown(1);
                    }
                    else
                    {
                        _attempts += 1;
                        _userName  = logon.UserName;
                        _pass      = logon.Password;
                        ShowLogOn();
                    }
                }
            }
        }