public IActionResult Delete(int id) { var query = (from d in context.Department select new Department { DepartmentId = d.DepartmentId, Name = d.Name, Parent = d.Parent, Hierarchy = d.Hierarchy }). OrderBy(d => d.Parent).ToList(); AnalyzeHierarchy ah = new AnalyzeHierarchy(); if (ah.czyMaszDzieci(id, query) == true) { return(RedirectToAction("Index", "Department")); } else if (ah.czyMaszDzieci(id, query) == false) { var department = context.Set <Department>(); department.Remove(new Department { DepartmentId = id }); try { context.SaveChanges(); return(RedirectToAction("Index", "Department")); } catch (Exception e) { return(RedirectToAction("Index", "Department")); } } return(RedirectToAction("Index", "Department")); }
public IActionResult Index() { var query = (from d in context.Department select new Department { DepartmentId = d.DepartmentId, Name = d.Name, Parent = d.Parent, Hierarchy = d.Hierarchy }). OrderBy(d => d.Hierarchy).ToList(); List <Department> depart = new List <Department>(); AnalyzeHierarchy ah = new AnalyzeHierarchy(); List <int> zapamietajID = new List <int>(); int currentParentId = query[0].Parent; int rememberParentId = 0; bool firstLoop = false; bool whenBothCheckChildrenFalse = false; Department rememberOmittedDepartment = null; int iStart = 0; for (int z = 0; z < 20; z++) { if (firstLoop == true) { for (int i = 0; i < zapamietajID.Count; i++) { if (query[i].DepartmentId != zapamietajID[i]) { currentParentId = query[i].Parent; break; } } } firstLoop = true; for (int i = iStart; i < query.Count; i++) { whenBothCheckChildrenFalse = false; if (zapamietajID.Contains(query[i].DepartmentId)) { continue; } //if (rememberOmittedDepartment != null) //{ // zapamietajID.Add(rememberOmittedDepartment.DepartmentId); // depart.Add(rememberOmittedDepartment); // //currentParentId = rememberOmittedDepartment.DepartmentId; // //currentParentId = query[i].DepartmentId; // rememberOmittedDepartment = null; // continue; //} if (ah.czyMaszDzieci(query[i].DepartmentId, query) == true) { if (currentParentId == query[i].Parent) { zapamietajID.Add(query[i].DepartmentId); depart.Add(query[i]); currentParentId = query[i].DepartmentId; if (rememberParentId != query[i].Parent) { rememberParentId = currentParentId; } continue; } } else if (ah.czyMaszDzieci(query[i].DepartmentId, query) == false) { if (currentParentId == query[i].Parent) { zapamietajID.Add(query[i].DepartmentId); depart.Add(query[i]); continue; } if (rememberParentId == query[i].Parent) { whenBothCheckChildrenFalse = true; } } if (whenBothCheckChildrenFalse == true) { //rememberOmittedDepartment = query[i]; iStart = i - 1; break; } } } return(View(depart)); }