public ProjectModuleEditVM(ILoadDataSender lastScreen, OrderVM order, ProjectVM projectVM, ProjectVM parentProject = null) : this(lastScreen, order, parentProject)
        {
            _parentProject = parentProject;
            _projectVM = projectVM;

            _project = _projectVM.Project;

            foreach (var item in Users_Project.Items)
            {
                if (_employeesCollection.FirstOrDefault(employee => employee.User.Id == item.User.Id) == null && item.Project.Id == _projectVM.Project.Id)
                {
                    _employeesCollection.Add(new UserVM(item.User));
                }

                if (item.Project.Id == _project.Id)
                    _savedPositions.Add(new User_ProjectVM(item));
            }

            foreach (var item in Team_Project.Items)
            {
                if (_teamsCollection.FirstOrDefault(team => team.Team.Id == item.Team.Id) == null && item.Project.Id == _projectVM.Project.Id)
                {
                    _teamsCollection.Add(new TeamVM(item.Team));
                }
            }

            _status = projectVM.Status;
            _selectedLeader = new UserVM(_projectVM.Leader);
            LoadData();
        }
 public EmployeeDetailsUserControl(IEmployee employee, ILoadDataSender lastScreen, UserDetailsVM userDetailsVM)
 {
     InitializeComponent();
     _lastScreen = lastScreen;
     _userDetailsVM = userDetailsVM;
     _currentUser = employee as UserVM;
     _employeeDetailsUserControlVM = new EmployeeDetailsUserControlVM(employee, lastScreen);
     DataContext = _employeeDetailsUserControlVM;
     LoadSkills();
 }
        public List<string> GetSkills(UserVM user)
        {
            var skills = Users_Skill.Items.FindAll(user_skill => user.User.Id == user_skill.UserId).ToList();
            var result = new List<string>();
            foreach (var item in skills)
            {
                result.Add(item.Skill.Name);
            }

            return result;
        }
 public void RemoveButtonClick(UserVM user)
 {
     if (_employeesToAddCollection.Where(item => item.User.Id == user.User.Id).Count() != 0)
     {
         var toDelete = _employeesToAddCollection.First(item => item.User.Id == user.User.Id);
         _employeesToAddCollection.Remove(toDelete);
         RemoveButton = false;
         ProfileButton = false;
         SaveButton = true;
         _savedPositions.RemoveAll(item => item.User.Id == user.User.Id);
         OnPropertyChanged("RemoveButton");
         OnPropertyChanged("ProfileButton");
         OnPropertyChanged("SaveButton");
         LoadData(this);
     }
 }
 public void AddButtonClick(UserVM user)
 {
     if (_employeesToAddCollection.Where(item => item.Equals(user)).Count() == 0)
     {
         _employeesToAddCollection.Add(user);
         AddButton = false;
         ProfileButton = false;
         SaveButton = true;
         OnPropertyChanged("AddButton");
         OnPropertyChanged("ProfileButton");
         OnPropertyChanged("SaveButton");
         LoadData(this);
     }
     else
     {
         throw new Exception("This employee is already exist");
     }
 }
 public void ActivateButtons(UserVM selectedEmployeeToDelete)
 {
     SelectedEmployeeToDelete = selectedEmployeeToDelete;
 }
        private void EmployeesToAddListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (EmployeesToAddListBox.SelectedItem != null)
            {
                _selectedEmployeeToAdd = (UserVM)EmployeesToAddListBox.SelectedItem;
                _addEmployeeVM.ActivateButtons(_selectedEmployeeToAdd);
                PositionsGrid.Visibility = Visibility.Visible;
                _addEmployeeVM.SelectedEmployeeToDelete = EmployeesToAddListBox.SelectedItem as UserVM;
                _positions = new List<CheckBox>();
                var employeesPositions = _addEmployeeVM.EmployeesPositions;

                foreach (var item in Position.Items)
                {
                    var cb = new CheckBox();
                    cb.Content = item.Name;
                    _positions.Add(cb);
                    cb.IsChecked = employeesPositions.Contains(item.Name) ? true : false;
                    cb.Click += new System.Windows.RoutedEventHandler(this.PositionCheckBox_Checked);
                }

                PositionListBox.Items.Clear();
                foreach (var item in _positions)
                {
                    PositionListBox.Items.Add(item);
                }
            }
            else
            {
                PositionsGrid.Visibility = Visibility.Hidden;
            }

            EmployeesCollectionDataGrid.SelectedItem = null;
        }
        private void EmployeesCollectionDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (EmployeesCollectionDataGrid.SelectedItem != null)
            {
                _selectedEmployeeToAdd = (UserVM)EmployeesCollectionDataGrid.SelectedItem;
                _addEmployeeVM.ActivateButtons(_selectedEmployeeToAdd);
            }

            EmployeesToAddListBox.SelectedItem = null;
            EmployeesCollectionDataGrid.SelectedItem = null;
        }
 public void RemoveButtonClick(UserVM select)
 {
     throw new NotImplementedException();
 }
 public EmployeeDetailsUserControlVM(IEmployee employee, ILoadDataSender lastScreen)
 {
     _currentEmployee = employee as UserVM;
     _lastScreen = lastScreen;
 }