コード例 #1
0
 public static void DeleteOrg(Org org, UserContext db)
 {
     db.UserInOrg.Where(x => x.OrgId == org.Id).ToList().ForEach(x => db.UserInOrg.Remove(x)); db.SaveChanges();
     foreach (department d in db.Org.Find(org.Id).department.ToList())
     {
         DepPointer dd = null;
         if ((dd = db.DepPointer.FirstOrDefault(x => x.ChildId == d.Id)) != null)
         {
             db.DepPointer.Remove(dd);
         }
     }
     db.Org.Remove(db.Org.Find(org.Id)); db.SaveChanges();
 }
コード例 #2
0
        //Delete Dep  ----- I Samma Org
        public void DeleteDepartment(DepDetailes dep, UserContext db)
        {
            if (db.department.FirstOrDefault(x => x.Id == dep.Id && x.OrgId == dep.OrgId) == null)
            {
                throw new Exception("the department not exsist");
            }
            List <int> Alldep = new List <int>();

            #region search
            foreach (SearchDepTree.Deps deps in new SearchDepTree().DepsTree(db, dep.Id, dep.OrgId))
            {
                Alldep.Add(deps.Dep.Id);

                foreach (int id in deps.Child)
                {
                    Alldep.Add(id);
                }
            }
            #endregion
            #region remove department
            foreach (int i in Alldep.Distinct())
            {
                department Department = db.department.First(x => x.Id == i);
                db.department.Remove(Department);
                db.SaveChanges();
            }
            #endregion
            //delete all userinorg
            #region MyRegion
            foreach (int i in Alldep.Distinct())
            {
                db.UserInOrg.Where(x => x.departmentId == i).ToList().ForEach(x => db.UserInOrg.Remove(x));

                db.SaveChanges();
            }
            #endregion

            #region remove depPointer
            foreach (int i in Alldep.Distinct())
            {
                DepPointer dp = db.DepPointer.FirstOrDefault(x => x.ChildId == i);
                if (dp != null)
                {
                    db.DepPointer.Remove(dp);
                    db.SaveChanges();
                }
            }
            #endregion
        }
コード例 #3
0
        //Edit Dep Position ----- I Samma Org
        public void EditDepartmentParent(DepDetailes dep, UserContext db)
        {
            List <int> childrenIds = new List <int>();

            foreach (SearchDepTree.Deps mbox in   new SearchDepTree().DepsTree(db, dep.Id, dep.OrgId))
            {
                childrenIds.Add(mbox.Dep.Id);
                foreach (int i in mbox.Child)
                {
                    childrenIds.Add(i);
                }
            }
            if (childrenIds.Where(x => x == dep.parentId).ToList().Count > 0)
            {
                throw new Exception("the parent is one of the children!");
            }
            department Dep = db.department.First(x => x.Id == dep.Id);

            if (db.DepPointer.FirstOrDefault(x => x.ChildId == dep.Id) == null) // Not Exist
            {
                if (dep.parentId > 0)
                {
                    db.DepPointer.Add(new DepPointer {
                        ChildId = dep.Id, ParentId = dep.parentId
                    });
                    db.SaveChanges();
                }
            }
            else //Exist
            {
                if (dep.parentId > 0)
                {
                    DepPointer Dp = db.DepPointer.First(x => x.ChildId == dep.Id);
                    Dp.ParentId        = dep.parentId;
                    db.Entry(Dp).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();
                }
                else
                {
                    DepPointer Dp = db.DepPointer.First(x => x.ChildId == dep.Id);
                    db.DepPointer.Remove(Dp);
                    db.SaveChanges();
                }
            }
        }