コード例 #1
0
        /// <summary>
        /// Рекурсивный метод удаления депортаментов
        /// </summary>
        /// <param name="deportament">Передать депорртамент к удалению</param>
        /// <param name="targetCollection">передать список на удаление</param>
        /// <param name="action">Действие</param>
        /// <returns>Флаг найден элемент для удаления или нет.</returns>
        private bool DeportamrntActions(Data.Deportament deportament, ObservableCollection <Data.Deportament> targetCollection, Action action)
        {
            bool FoundItems = false;              //Фллаг что элемент найден

            foreach (var dep in targetCollection) //Проходимся по всему переданному списку
            {
                if (dep.Equals(deportament))      //Если елемент удаления найден. Возможен баг: когда два одинаковых елемента в соседних ветках дерева, удаляться оба.
                {
                    FoundItems = true;            //Меняем флаг на true
                    targetCollection.Remove(dep); //Удаляем найденый элемент
                    return(FoundItems);           //Выходим с передачей что элемент найден
                }
                else
                {
                    if (dep.Deportaments != null && dep.Deportaments.Count >= 1)       //Если есть дочернии элементы
                    {
                        if (DeportamrntActions(deportament, dep.Deportaments, action)) //Если рекурсия возвращяет true
                        {
                            return(true);
                        }                                                             //Возвращаем выше что элемент найден.
                    }
                }
            }


            return(FoundItems);
        }
コード例 #2
0
        private void EditDeportament_Click(object sender, RoutedEventArgs e)  //Редактировать депортамент
        {
            Data.Deportament cangedDeportament = DeportamentView.SelectedItem as Data.Deportament;
            var DEForm = new DeportamentWindow(cangedDeportament);                  //Передаем только какой депортамент изменить.

            DEForm.ShowDialog();
            DeportamentView.Items.Refresh();                                  //Обновляем древо что быотобразились изменения
        }
コード例 #3
0
        private void MenuItem_Click(object sender, RoutedEventArgs e)       //Добавить депортамент
        {
            Data.Deportament newDeportament = new Data.Deportament();       //Новый элемент депортамента.
            var currDep = DeportamentView.SelectedItem as Data.Deportament; //Текущий депортамент.
            var DAForm  = new DeportamentWindow(newDeportament, currDep);   //Создаем форму добовления депортамента и передаем  выбранный депортамент и новый

            DAForm.ShowDialog();                                            //Открываем  форму.

            DeportamentView.Items.Refresh();
        }
コード例 #4
0
        Data.Deportament curDep;      //Выбранный депотамент

        /// <summary>
        /// Создание или редактирование депортамента.
        /// </summary>
        /// <param name="deportament">Передать выбранный депортамент.</param>
        /// <param name="CurrentDeportament">Применяется если создается депортамент.</param>
        public DeportamentWindow(Data.Deportament deportament, Data.Deportament CurrentDeportament = null)
        {
            InitializeComponent();

            deport = deportament;
            curDep = CurrentDeportament;

            //Запорлняем форму полями
            DatePicForm.SelectedDate = deport.CreatedDate;
            CountStaffForm.Text      = deport.Staffs.Count.ToString();
            NameForm.Text            = deport.Name;
        }
コード例 #5
0
        private void EditStaff_Click(object sender, RoutedEventArgs e)                   //Редактировать сотрудника
        {
            if (DeportamentView.SelectedItem == null || StaffsView.SelectedItem == null) //Проверяем что выбран депортамент и сотрудник
            {
                MessageBox.Show("Не выбран депортамент или сотруднник.");
                return;
            }
            Data.Deportament curDeport = DeportamentView.SelectedItem as Data.Deportament;
            Data.Staff       curStaff  = StaffsView.SelectedItem as Data.Staff;
            var SEForm = new StaffsWindow(curDeport, curStaff);            //Открываем форму с передачей выбранных депортамента и сотрудника

            SEForm.ShowDialog();

            StaffsView.Items.Refresh();                                 //Обновляем что бы применить изменения
        }
コード例 #6
0
        private void AddStaff_Cilck(object sender, RoutedEventArgs e) //Добавить сотрудника
        {
            if (DeportamentView.SelectedItem == null)                 //Проверка что выбран депортамент для сотрудника.
            {
                MessageBox.Show("Не выбран депортамент.");
                return;
            }
            Data.Deportament curDeport = DeportamentView.SelectedItem as Data.Deportament;
            Data.Staff       newStaff  = null;
            var SAForm = new StaffsWindow(curDeport, newStaff);  //Создаем форму и передаем сотрудника и

            SAForm.ShowDialog();

            StaffsView.Items.Refresh();                 //Обновляем что бы отобразились изменения
        }
コード例 #7
0
        bool IsCreated = false;       //Флаг создан новый сотрудник или нет.


        /// <summary>
        /// Окно создания или редоктирования сотрудника
        /// </summary>
        /// <param name="Deportament">Текущий выбранный депортамент.</param>
        /// <param name="Staff">Передать сотррудника только если требуется его отредактировать.</param>
        public StaffsWindow(Data.Deportament Deportament, Data.Staff Staff = null)
        {
            InitializeComponent();
            deport = Deportament;          //Сохраняем ссылку на указанный депортамент.
            staff  = Staff;                //Сохраняем ссылку на обьек сотрудника.
            if (staff != null)             //Если передали сотрудника то загрружаем поля  в UI
            {
                AgeForm.Text       = staff.Age.ToString();
                LastNameForm.Text  = staff.LastName;
                FirstNameForm.Text = staff.FirstName;
                IDForm.Text        = staff.Id.ToString();
                SalaryForm.Text    = staff.Salary.ToString();
            }
            DeportamentForm.Text = deport.Name;    //Отображаем название текущего депортамента
        }