コード例 #1
0
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog.Filter = "Text files(*.json)|*.json|All files(*.*)|*.*";

            if (openFileDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }

            fullPath = openFileDialog.FileName;

            DepartmentsDb tmp = ProvideServices.ReadJSON <DepartmentsDb>(fullPath);

            Db = new DepartmentsDbDTO(tmp);

            foreach (var it in Db.Departments)
            {
                ToolStripMenuItem dbItem = new ToolStripMenuItem(it.Name);
                dbItem.Checked    = true;
                dbItem.CheckState = CheckState.Unchecked;
                dbItem.Click     += DbItem_Click;
                selectToolStripMenuItem.DropDownItems.Add(dbItem);
            }

            saveToolStripMenuItem.Enabled   = true;
            saveAsToolStripMenuItem.Enabled = true;
        }
        /// <summary>
        /// Method to REMOVE Department and MOVE all it's Employees to another
        /// </summary>
        /// <param name="departmentToRemove">Department to REMOVE</param>
        /// <param name="departmentToAddEmployees">Department in witch MOVE</param>
        public void RemoveDepartment(Department departmentToRemove, Department departmentToAddEmployees)
        {
            Department parent = DepartmentsDb.Find(x => x.DepartmentName == departmentToRemove.ParentDepartment);

            if (parent != null)
            {
                parent.innerDepartments.Remove(departmentToRemove);
            }
            else
            {
                company.Clear();
            }

            foreach (Employee e in EmployeesDB)
            {
                if (e.Department == departmentToRemove.DepartmentName)
                {
                    e.Department = departmentToAddEmployees.DepartmentName;
                }
            }

            MoveChildren(departmentToRemove, departmentToAddEmployees);

            RemoveChildren(departmentToRemove);

            DepartmentsDb.Remove(departmentToRemove);
        }
        /// <summary>
        /// Method to REMOVE Department
        /// </summary>
        /// <param name="department">Department to Remove</param>
        public void RemoveDepartment(Department department)
        {
            Department parent = DepartmentsDb.Find(x => x.DepartmentName == department.ParentDepartment);

            if (parent != null)
            {
                parent.innerDepartments.Remove(department);
            }
            else
            {
                company.Clear();
            }

            if (department.DepartmentName != DepartmentsDb.Find(x => x is Company).DepartmentName)
            {
                RemoveChildren(department);
                DepartmentsDb.Remove(department);
            }
            else
            {
                DepartmentsDb.Clear();
            }

            EmployeesDB = EmployeesDB.Where(x => x.Department != department.DepartmentName).ToList();
        }
        /// <summary>
        /// Method to ADD Department
        /// </summary>
        /// <param name="Name">New Department Name</param>
        /// <param name="ParentName">New Department Parent</param>
        public void AddDepartment(string Name, string ParentName)
        {
            Department department = new Department(Name, ParentName);

            DepartmentsDb.Add(department);
            Department parent = DepartmentsDb.Find(x => x.DepartmentName == ParentName);

            parent.innerDepartments.Add(department);
        }
 /// <summary>
 /// Method to REMOVE Children from removed Department
 /// </summary>
 /// <param name="parent">Department to Remove</param>
 void RemoveChildren(Department parent)
 {
     for (int i = 0; i < DepartmentsDb.Count; i++)
     {
         if (DepartmentsDb[i].ParentDepartment == parent.DepartmentName)
         {
             RemoveChildren(DepartmentsDb[i]);
             DepartmentsDb.Remove(DepartmentsDb[i]);
         }
     }
 }
コード例 #6
0
        private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (saveFileDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            fullPath = saveFileDialog.FileName;

            DepartmentsDb db = Db.ToDLA();

            ProvideServices.WriteJSON <DepartmentsDb>(fullPath, ref db);
        }
コード例 #7
0
        public DepartmentsDbDTO(DepartmentsDb db)//хранит список кафедр
        {
            Departments = new List <DepartmentDTO>();

            foreach (var it in db.Departments)//копирует кафедры
            {
                if (!Departments.Contains(new DepartmentDTO(it)))
                {
                    Departments.Add(new DepartmentDTO(it));
                }
            }
        }
コード例 #8
0
        public DepartmentsDb ToDLA()
        {
            List <Department> departments = new List <Department>();

            foreach (var it in Departments)
            {
                departments.Add(it.ToDLA());
            }

            DepartmentsDb db = new DepartmentsDb {
                Departments = departments.ToArray()
            };

            return(db);
        }
        /// <summary>
        /// SET Department Values for Properties
        /// </summary>
        /// <param name="node">XML node to get Values</param>
        /// <param name="dept">Department to add Values</param>
        void DefineDepartmentClass(XmlNode node, Department dept)
        {
            dept.DepartmentName   = Convert.ToString(node.Attributes.GetNamedItem("departmentName").Value);
            dept.ParentDepartment = Convert.ToString(node.Attributes.GetNamedItem("parentDepartment").Value);
            dept.Repository       = this;

            if (node.Attributes.GetNamedItem("parentDepartment").Value != "")
            {
                foreach (Department d in DepartmentsDb)
                {
                    if (d.DepartmentName == dept.ParentDepartment)
                    {
                        d.innerDepartments.Add(dept);
                    }
                }
            }
            else
            {
                company.Add(dept);
            }

            DepartmentsDb.Add(dept);
        }
コード例 #10
0
        private void saveToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DepartmentsDb db = Db.ToDLA();

            ProvideServices.WriteJSON <DepartmentsDb>(fullPath, ref db);
        }