Пример #1
0
        public ControlMaps()
        {
            InitializeComponent();
            this.DataContext = this;
            Application.Current.MainWindow.MouseMove += Image_MouseMove;
            Application.Current.MainWindow.MouseUp   += Image_MouseLeftButtonUp;

            ArrayMapObjects = SQLiteBase.GetObjectMap(2);
            MapId           = 2;

            typeObjects = SQLiteBase.GetTypeObjectMap();

            //Делаем запрос на получение основных пунктов меню, -1 - значит поле parent_id отсутствует.
            Locations = SQLiteBase.GetMenuItem(-1);

            foreach (MenuItemLocations MainItem in Locations)
            {
                //Список элементов который будет пополнятся элементами меню для поиска дочерних элементов
                List <MenuItemLocations> ochered = new List <MenuItemLocations>();

                //Добавляем в очередь главное меню
                ochered.Add(MainItem);

                for (int i = 0; ochered.Count > i; i++)
                {
                    //Получаем дочерние элементы из базы
                    List <MenuItemLocations> ChildrenElementsList = SQLiteBase.GetMenuItem(ochered[i].Id);
                    ochered[i].Command          = SetLocation;
                    ochered[i].CommandParameter = ochered[i].Id;

                    //Если дочерние элементы существуют
                    if (ChildrenElementsList != null)
                    {
                        //Добавляем в меню по которому сейчас проходим найденные дочерние элементы
                        ochered[i].ItemsSource = ChildrenElementsList;

                        //Проходимся по ним и добавляем в очередь на поиск дочерних элементов
                        foreach (MenuItemLocations ChildrenElement in ChildrenElementsList)
                        {
                            ochered.Add(ChildrenElement);
                        }
                    }
                    //Если дочерние элементы отсутствуют, значит это последний элемент в списке, навесим на него команду
                    else
                    {
                    }
                }
            }
        }
Пример #2
0
        public static async Task <List <User> > AsyncSearchUsers(string Name = "", string TelephoneNumber = "", string ComputerName = "")
        {
            var UserList = new List <User>();

            await Task.Run(() =>
            {
                string FilterString = "";

                if (Name != "" && Name != null)
                {
                    FilterString += "(displayname=*" + Name + "*)";
                }
                if (TelephoneNumber != "" && TelephoneNumber != null)
                {
                    FilterString += "(telephonenumber=" + TelephoneNumber + "*)";
                }
                if (ComputerName != "" && ComputerName != null)
                {
                    FilterString += "(wwwhomepage=" + ComputerName + "*)";
                }

                Search.Filter = "(&(ObjectClass=User)(givenname=*)" + FilterString + ")";

                SearchResultCollection result = Search.FindAll();
                if (result.Count > Properties.Settings.Default.MaxSearchUser)
                {
                    throw new Exception("Найдено более " + Properties.Settings.Default.MaxSearchUser + " пользователей, уточните параметры поиска.");
                }

                for (int i = 0; i < result.Count; i++)
                {
                    User User = new User(GetUserProperties(result[i], "displayname"));

                    //Если userAccountControl == 514 то аккаунт не true, т.е. отключен
                    User.EnableAccount = !(GetUserProperties(result[i], "userAccountControl") == "514");

                    //Достаем номер телефона
                    User.UserName = GetUserProperties(result[i], "samaccountname");
                    //Достаем номер телефона
                    User.TelephoneNumber = GetUserProperties(result[i], "telephonenumber");
                    //Достаем имя компьютера
                    User.ComputerName = GetUserProperties(result[i], "wwwhomepage");
                    //Достаем описание пользователя
                    User.Description = GetUserProperties(result[i], "description");

                    //Достаем Axapta логин пользователя
                    User.AxaptaId = SQLiteBase.GetUserAxaptaName(User.UserName);

                    //Ищем есть ли такой компьютер на карте
                    if (User.ComputerName != null & User.ComputerName.Length > 0)
                    {
                        if (SQLiteBase.GetLocationsByName(User.ComputerName) != null)
                        {
                            User.IsAddToMap = true;
                        }
                    }

                    foreach (string a in (GetUserProperties(result[i], "distinguishedname")).Split(','))
                    {
                        if (a.Contains("OU"))
                        {
                            User.DomainOU = (a.Replace("OU=", "")) + "->" + User.DomainOU;
                        }
                    }
                    User.DomainOU = User.DomainOU.Remove(User.DomainOU.Length - 2);
                    User.DomainOU = "LDF->" + User.DomainOU;


                    //Добавляем Пользователя в список найденных пользователей
                    UserList.Add(User);
                }
            });

            return(UserList);
        }
Пример #3
0
        public static async void searchUsers(ObservableCollection <User> UsersList, string Name = "", string TelephoneNumber = "", string ComputerName = "")
        {
            string FilterString = "";

            if (Name != "" && Name != null)
            {
                FilterString += "(displayname=*" + Name + "*)";
            }
            if (TelephoneNumber != "" && TelephoneNumber != null)
            {
                FilterString += "(telephonenumber=" + TelephoneNumber + "*)";
            }
            if (ComputerName != "" && ComputerName != null)
            {
                FilterString += "(wwwhomepage=" + ComputerName + "*)";
            }

            Search.Filter = "(&(ObjectClass=User)(givenname=*)" + FilterString + ")";

            SearchResultCollection result = Search.FindAll();

            if (result.Count > Properties.Settings.Default.MaxSearchUser)
            {
                throw new Exception("количество найденных пользователей больше 30");
            }
            await Task.Run(() =>
            {
                for (int i = 0; i < result.Count; i++)
                {
                    User User = new User(GetUserProperties(result[i], "displayname"));

                    //Если userAccountControl == 514 то аккаунт не true, т.е. отключен
                    User.EnableAccount = !(GetUserProperties(result[i], "userAccountControl") == "514");

                    //Достаем номер телефона
                    User.UserName = GetUserProperties(result[i], "samaccountname");
                    //Достаем номер телефона
                    User.TelephoneNumber = GetUserProperties(result[i], "telephonenumber");
                    //Достаем имя компьютера
                    User.ComputerName = GetUserProperties(result[i], "wwwhomepage");
                    //Достаем описание пользователя
                    User.Description = GetUserProperties(result[i], "description");

                    //Достаем Axapta логин пользователя
                    User.AxaptaId = SQLiteBase.GetUserAxaptaName(User.UserName);

                    foreach (string a in (GetUserProperties(result[i], "distinguishedname")).Split(','))
                    {
                        if (a.Contains("OU"))
                        {
                            User.DomainOU = (a.Replace("OU=", "")) + "->" + User.DomainOU;
                        }
                    }
                    User.DomainOU = User.DomainOU.Remove(User.DomainOU.Length - 2);
                    User.DomainOU = "LDF->" + User.DomainOU;

                    Application.Current.Dispatcher.BeginInvoke((Action) delegate()
                    {
                        //Добавляем Пользователя в список найденных пользователей
                        UsersList.Add(User);
                    });
                }
            });
        }