private void Execute_AddStaff(object obj)
        {
            var p = (staff)obj;

            //insert account
            UserName = ExtraFunction.generateUserName(p);
            var acc = new account
            {
                UserName = UserName,
                Password = p.IdentityCard,
                Role     = RoleID + 1,
            };

            accountRepository.Insert(acc);
            accountRepository.Save();
            //insert staff
            p.Account_id = acc.ID;
            staffRepository.Insert(p);
            staffRepository.Save();
            Visibility = Visibility.Visible;
            System.Windows.Forms.MessageBox.Show("Successfully Auto Created", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
        private void Execute_UpdateInfoStaff(object obj)
        {

            MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show("Are you sure?", "Confirmation", System.Windows.MessageBoxButton.YesNo, MessageBoxImage.Question);
            if (messageBoxResult == MessageBoxResult.Yes)
            {
                var p = (staff)obj;
                staffRepository.Update(p);
                staffRepository.Save();
                var selectedAcc = accountRepository.Get(acc => acc.ID == p.Account_id).FirstOrDefault();
                selectedAcc.UserName = ExtraFunction.generateUserName(p);
                accountRepository.Update(selectedAcc);
                accountRepository.Save();
                var UID = session.AccountID;
                var res = staffRepository.Get(s => s.Account_id != UID);
                StaffList.Clear();
                res.Distinct().ToList().ForEach(i => StaffList.Add(i));
                System.Windows.Forms.MessageBox.Show("Successfully updated", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }


        }