// Конструктор
        public SelectUser(string user, string fielForSearch, DirectoryEntry entry, PrincipalContext context)
        {
            InitializeComponent();
            Title          = "Найдено несколько пользователей " + user;
            selectedUserDN = "";
            ReadOnlyCollection <User> items;
            string errorMsg = "";

            ListUsersForSelected.ItemsSource = null;
            Filter.IsEnabled = false;
            Filter.Text      = "";
            new Thread(() =>
            {
                items = AsyncDataProvider.GetUsersForSelected(fielForSearch, user, context, entry, ref errorMsg);
                Dispatcher.BeginInvoke(new Action(() =>
                {
                    ListUsersForSelected.ItemsSource = items;
                    CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(ListUsersForSelected.ItemsSource);
                    view.Filter         = FindedUsers_Filter;
                    if (view.Count > 0)
                    {
                        ListUsersForSelected.SelectedIndex = 0;
                    }
                    Filter.IsEnabled = true;
                    if (!string.IsNullOrWhiteSpace(errorMsg))
                    {
                        MessageBox.Show(errorMsg, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }));
            }).Start();
        }
Ejemplo n.º 2
0
        // Запущен процесс поиска пользователя в АД
        private void search_OnSearch(object sender, RoutedEventArgs e)
        {
            SearchEventArgs           searchArgs = e as SearchEventArgs;
            ReadOnlyCollection <User> items;
            string errorMsg = "";

            ListUsersForSelected.ItemsSource = null;
            Search.IsEnabled = false;
            Filter.IsEnabled = false;
            Filter.Text      = "";
            new Thread(() =>
            {
                items = AsyncDataProvider.GetUsersForSelected(fieldsInAD[searchArgs.Sections[0]], searchArgs.Keyword, _principalContext, _sessionAD, ref errorMsg);
                Dispatcher.BeginInvoke(new Action(() =>
                {
                    ListUsersForSelected.ItemsSource = items;
                    CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(ListUsersForSelected.ItemsSource);
                    view.Filter         = FindedUsers_Filter;
                    if (view.Count > 0)
                    {
                        ListUsersForSelected.SelectedIndex = 0;
                    }
                    Filter.IsEnabled = true;
                    Search.IsEnabled = true;
                    if (!string.IsNullOrWhiteSpace(errorMsg))
                    {
                        MessageBox.Show(errorMsg, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }));
            }).Start();
        }