public ActionResult Create(Department department)
        {
            //模型状态错误(为空)
            if (ModelState.IsValid)
            {
                /*选出ReserveFields中部门相关的记录*/
                var recordList = (from p in db.ReserveFields where p.TableName == "Departments" select p).ToList();
                ViewBag.recordList = recordList;
                /*生成部门编号*/
                department.Number = (new Random().Next(1111, 9999)).ToString();
                /*遍历*/
                foreach (var temp in recordList)
                {
                    DepartmentReserve dr = new DepartmentReserve();
                    dr.Number  = department.Number;
                    dr.FieldId = temp.Id;
                    dr.Value   = Request[temp.FieldName];
                    db.DepartmentReserves.Add(dr);
                    /*把这行去掉之后即可运行*/
                    //db.SaveChanges();
                }
                db.Departments.Add(department);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(department));
        }
Пример #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            /*Step1:删除预留字段*/
            // 由于主外键关系,Departments是主表,DepartmentReserves是引用Departments表的信息。
            //只有先删除对应DepartmentReserve的动态变化的字段的信息
            var item = (from dr in db.DepartmentReserves
                        where dr.Number == id
                        select new DepartmentViewModel {
                Id = dr.Id
            }).ToList();

            foreach (var temp in item)
            {
                DepartmentReserve drs = db.DepartmentReserves.Find(temp.Id);
                db.DepartmentReserves.Remove(drs);
            }
            db.SaveChanges();

            /*Step2:删除固定字段*/
            //删除Departments表对应的信息
            Department department = db.Departments.Find(id);

            db.Departments.Remove(department);
            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
Пример #3
0
        public ActionResult Create(Department department)
        {
            //传值到页面
            // ViewBag.List = item;
            if (ModelState.IsValid)
            {
                //ModelState.AddModelError("","error");
                /*Step1:如果上级部门为空则上级部门编号为公司Id*/
                // if (department.ParentDepartmentId == null) { department.ParentDepartmentId = this.CompanyId; }

                department.DepartmentId    = GetRandomCode(50);
                department.DepartmentOrder = 99;
                department.RecordTime      = DateTime.Now;
                department.RecordPerson    = this.UserName;

                /*Step3:保存固定字段(为了生成主键Id)*/
                db.Departments.Add(department);
                db.SaveChanges();

                /*Step4:显示预留字段名称*/
                var recordList2 = (from p in db.ReserveFields
                                   join q in db.TableNameContrasts
                                   on p.TableNameId equals q.Id
                                   where q.TableName == "Departments" && p.Status == true
                                   select p).ToList();
                ViewBag.recordList2 = recordList2;

                /*Step5:保存预留字段的值*/
                foreach (var temp in recordList2)
                {
                    DepartmentReserve dr = new DepartmentReserve();
                    dr.Number  = department.Id;
                    dr.FieldId = temp.Id;
                    dr.Value   = Request[temp.FieldName];
                    /*占位,为了在Index中显示整齐的格式*/
                    if (dr.Value == null)
                    {
                        dr.Value = " ";
                    }
                    db.DepartmentReserves.Add(dr);
                    db.SaveChanges();
                }

                //修改其他的自定义字段的列表

                return(RedirectToAction("Index"));
            }
            var recordList1 = (from p in db.ReserveFields
                               join q in db.TableNameContrasts
                               on p.TableNameId equals q.Id
                               where q.TableName == "Departments" && p.Status == true
                               select p).ToList();

            ViewBag.recordList = recordList1;
            return(View(department));
        }
Пример #4
0
        public ActionResult Edit(Department department)
        {
            //如果公司的上级部门编号ParentDepartmentId为空,将它置为null
            if (department.ParentDepartmentId == "")
            {
                department.ParentDepartmentId = this.CompanyId;
            }

            //模型状态错误(为空)
            if (ModelState.IsValid)
            {
                Department d = db.Departments.Find(department.Id);
                if (d != null)
                {
                    // 得到部门department.Number对应的所有动态变化的字段
                    var pp = (from df in db.DepartmentReserves
                              join rf in db.ReserveFields on df.FieldId equals rf.Id
                              where df.Number == department.Id
                              select new DepartmentViewModel {
                        Id = df.Id, Description = rf.Description, Value = df.Value
                    }).ToList();
                    //对每个动态变化的字段进行赋值
                    foreach (var temp in pp)
                    {
                        DepartmentReserve dr = db.DepartmentReserves.Find(temp.Id);
                        dr.Value = Request[temp.Description];
                        db.SaveChanges();
                    }


                    d.Name               = department.Name;
                    d.DepartmentId       = department.DepartmentId;
                    d.ParentDepartmentId = department.ParentDepartmentId;
                    d.Remark             = department.Remark;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }
            else
            {
                //自带的ValidationSummary提示
                ModelState.AddModelError("", "修改失败");
            }
            return(View(department));
        }
Пример #5
0
        public ActionResult Create(Department department)
        {
            if (ModelState.IsValid)
            {
                /*Step1:如果上级部门为空则上级部门编号为公司Id*/
                if (department.ParentDepartmentId == null)
                {
                    department.ParentDepartmentId = this.CompanyId;
                }

                /*Step2:部门编号唯一,应该用Ajax??*/
                //var find = (from p in db.Departments where p.DepartmentId == department.DepartmentId select p).FirstOrDefault();
                //if (find != null) { ModelState.AddModelError("","部门编号已存在!" );}

                /*Step3:保存固定字段(为了生成主键Id)*/
                db.Departments.Add(department);
                db.SaveChanges();

                /*Step4:显示预留字段名称*/
                var recordList = (from p in db.ReserveFields where p.TableName == "Departments" select p).ToList();
                ViewBag.recordList = recordList;


                /*Step5:保存预留字段的值*/
                foreach (var temp in recordList)
                {
                    DepartmentReserve dr = new DepartmentReserve();
                    dr.Number  = department.Id;
                    dr.FieldId = temp.Id;
                    dr.Value   = Request[temp.FieldName];
                    /*占位,为了在Index中显示整齐的格式*/
                    if (dr.Value == null)
                    {
                        dr.Value = " ";
                    }
                    db.DepartmentReserves.Add(dr);
                    db.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }

            return(View(department));
        }
Пример #6
0
        public ActionResult Edit(Department department)
        {
            //实现下拉列表
            var item = db.Departments.Where(p => p.DepartmentId != department.DepartmentId).OrderBy(p => p.DepartmentOrder).ToList().Select(c => new SelectListItem
            {
                Value = c.DepartmentId, //保存的值
                Text  = c.Name          //显示的值
            }).ToList();


            SelectListItem company = new SelectListItem();

            company.Value    = this.CompanyId;
            company.Text     = this.CompanyFullName;
            company.Selected = true;

            item.Insert(0, company);


            //传值到页面
            ViewBag.List = item;

            //如果公司的上级部门编号ParentDepartmentId为空,将它置为null
            if (department.ParentDepartmentId == "")
            {
                department.ParentDepartmentId = this.CompanyId;
            }

            //模型状态错误(为空)
            if (ModelState.IsValid)
            {
                Department d = db.Departments.Find(department.Id);
                if (d != null)
                {
                    // 得到部门department.Number对应的所有动态变化的字段
                    var pp = (from df in db.DepartmentReserves
                              join rf in db.ReserveFields on df.FieldId equals rf.Id
                              where df.Number == department.Id && rf.Status == true
                              select new DepartmentViewModel {
                        Id = df.Id, Description = rf.Description, Value = df.Value
                    }).ToList();
                    ViewBag.ValueList = pp;

                    //该部门的孩子部门
                    var childrens = (from p in db.Departments where p.ParentDepartmentId == department.DepartmentId select p).ToList();
                    foreach (var children in childrens)
                    {
                        if (department.ParentDepartmentId == children.DepartmentId)
                        {
                            ViewBag.errorMessage = true;
                            //ModelState.AddModelError("", "该父级部门已经是子部门!");
                            return(View(department));
                        }
                    }

                    //对每个动态变化的字段进行赋值
                    foreach (var temp in pp)
                    {
                        DepartmentReserve dr = db.DepartmentReserves.Find(temp.Id);
                        dr.Value = Request[temp.Description];
                        db.SaveChanges();
                    }

                    d.DepartmentOrder    = department.DepartmentOrder;
                    d.ChangeTime         = DateTime.Now;
                    d.ChangePerson       = this.UserName;
                    d.DepartmentAbbr     = department.DepartmentAbbr;
                    d.Name               = department.Name;
                    d.DepartmentId       = department.DepartmentId;
                    d.StaffSize          = department.StaffSize;
                    d.ParentDepartmentId = department.ParentDepartmentId;
                    d.Remark             = department.Remark;
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }
            else
            {
                //自带的ValidationSummary提示
                ModelState.AddModelError("", "修改失败");
            }
            //DepartmentViewModel显示部门信息(部门表变化的字段)
            var pp1 = (from df in db.DepartmentReserves
                       join rf in db.ReserveFields on df.FieldId equals rf.Id
                       where df.Number == department.Id && rf.Status == true
                       select new DepartmentViewModel {
                Id = df.Id, Description = rf.Description, Value = df.Value
            }).ToList();

            ViewBag.ValueList = pp1;
            return(View(department));
        }