protected override void ExitExecute()
        {
            IsAddedNewEmployee = false;
            var ownerView = new HotelOwnerView();

            ownerView.Show();
            addNewEmployeeView.Close();
        }
        void Submit(object obj)
        {
            string password = (obj as PasswordBox).Password;

            ownerUserName = ReadOwnerUsername();
            ownerPassword = ReadOwnerPasword();
            DataAccess dataAccess = new DataAccess();

            if (UserName == ownerUserName && password == ownerPassword)
            {
                HotelOwnerView hotelOwnerView = new HotelOwnerView();
                loginView.Close();
                hotelOwnerView.Show();
                return;
            }
            else if (dataAccess.IsCorrectUser(userName, password))
            {
                int userDataId = dataAccess.GetUserDataId(userName);
                if (userDataId != 0)
                {
                    if (dataAccess.GetTypeOfUser(userDataId) == nameof(tblManager))
                    {
                        var         manager     = dataAccess.LoadManagerByUsername(UserName);
                        int         managerId   = manager.ManagerID;
                        ManagerView managerView = new ManagerView(managerId);
                        loginView.Close();
                        managerView.Show();
                        return;
                    }
                    if (dataAccess.GetTypeOfUser(userDataId) == nameof(tblEmployee))
                    {
                        var          employee     = dataAccess.LoadEmployeeByUsername(UserName);
                        EmployeeView employeeView = new EmployeeView(employee);
                        loginView.Close();
                        employeeView.Show();
                        return;
                    }
                    return;
                }
            }
            else if (!dataAccess.IsCorrectUser(userName, password))
            {
                WarningView warning = new WarningView(loginView);
                warning.Show("User name or password are not correct!");
                UserName = null;
                (obj as PasswordBox).Password = null;
                return;
            }
        }
        protected override void SaveExecute()
        {
            try
            {
                UserData.UserData.GivenName   = UserData.GivenName;
                UserData.UserData.Surname     = UserData.Surname;
                UserData.UserData.Email       = UserData.Email;
                UserData.UserData.Username    = UserData.Username;
                UserData.UserData.Password    = SecurePasswordHasher.Hash(UserData.Password);
                UserData.UserData.DateOfBirth = UserData.DateOfBirthValue;
                //adding new employee to database
                db.TryAddNewUserData(UserData.UserData);

                var userId = db.GetUserDataId(UserData.Username);
                if (userId != 0)
                {
                    employee.UserDataID  = userId;
                    employee.Position    = Position;
                    employee.FloorNumber = FloorNumber;
                    employee.Sex         = Sex;
                    employee.Citizenship = Citizenship;
                    IsAddedNewEmployee   = db.TryAddNewEmployee(employee);
                    if (!IsAddedNewEmployee)
                    {
                        MessageBox.Show("Something went wrong. The new employee is not created.");
                        db.TryRemoveUserData(userId);
                    }
                    else
                    {
                        MessageBox.Show("The new employee is sucessfully created.");
                    }
                }
                else
                {
                    MessageBox.Show("Something went wrong. The new employee is not created.");
                }
                var ownerView = new HotelOwnerView();
                ownerView.Show();
                addNewEmployeeView.Close();
                return;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
        protected override void SaveExecute()
        {
            try
            {
                UserData.UserData.GivenName   = UserData.GivenName;
                UserData.UserData.Surname     = UserData.Surname;
                UserData.UserData.Email       = UserData.Email;
                UserData.UserData.Username    = UserData.Username;
                UserData.UserData.Password    = SecurePasswordHasher.Hash(UserData.Password);
                UserData.UserData.DateOfBirth = UserData.DateOfBirthValue;
                //adding new manager to database
                db.TryAddNewUserData(UserData.UserData);

                var userId = db.GetUserDataId(UserData.Username);
                if (userId != 0)
                {
                    manager.UserDataID = userId;
                    manager.ProfessionalQualificationsLevel = ProfessionalQualificationsLevel;
                    manager.FloorNumber    = FloorNumber;
                    manager.WorkExperience = workExperienceValue;
                    IsAddedNewManager      = db.TryAddNewManager(manager);
                    if (!IsAddedNewManager)
                    {
                        MessageBox.Show("Something went wrong. The new manager is not created.");
                        db.TryRemoveUserData(userId);
                    }
                    else
                    {
                        MessageBox.Show("The new manager is sucessfully created.");
                    }
                }
                else
                {
                    MessageBox.Show("Something went wrong. The new manager is not created.");
                }
                var ownerView = new HotelOwnerView();
                ownerView.Show();
                addNewManagerView.Close();
                return;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
 public HotelOwnerViewModel(HotelOwnerView hotelOwnerView)
 {
     this.hotelOwnerView = hotelOwnerView;
 }