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]); } } }
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); }
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)); } } }
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); }
private void saveToolStripMenuItem_Click(object sender, EventArgs e) { DepartmentsDb db = Db.ToDLA(); ProvideServices.WriteJSON <DepartmentsDb>(fullPath, ref db); }