public ActionResult Create(DepartmentViewModel viewModel)
        {
            var areas = _areaService.Get(properties: new[] { "Id", "AreaName" }).Select(p => new SelectListItem
            {
                Text = p.AreaName,
                Value = p.Id.ToString(),
            }).ToList();
            ViewData["Areas"] = areas;

            var expression = new[]
            {
                new ExpressionCriteria{ PropertyName = "DEPT_INFO_ISDEL", Value = 0, Operate = Operator.Equal },
            };
            var deps = _departmentService.Get(expression).Select(p => new SelectListItem
            {
                Text = p.Name,
                Value = p.Id.ToString(),
            }).ToList();
            ViewData["Departments"] = deps;

            if (viewModel.DepartmentContract.AreaId == default(Guid))
            {
                ModelState.AddModelError("", "请选择区域");
            }
            else if (viewModel.DepartmentContract.IsValid())
            {
                var rs = _departmentService.Create(viewModel.DepartmentContract);
                if (rs != ResultStatus.Success)
                {
                    ModelState.AddModelError("", rs == ResultStatus.Duplicate ? "记录已经存在" : "添加失败");
                    return View(new DepartmentViewModel(viewModel.DepartmentContract));
                }
                return RedirectToAction("Index");
            }
            ModelState.AddModelError("", viewModel.DepartmentContract.ErrorMessage);
            return View(new DepartmentViewModel(viewModel.DepartmentContract));
        }
        public ActionResult Update(DepartmentViewModel viewModel)
        {
            if (viewModel.DepartmentContract.AreaId == default(Guid))
            {
                ModelState.AddModelError("", "请选择区域");
            }
            else if (viewModel.DepartmentContract.IsValid())
            {
                var status = _departmentService.Update(viewModel.DepartmentContract);
                switch (status)
                {
                    case ResultStatus.Success:
                        return RedirectToAction("Index");
                    case ResultStatus.Failed:
                        ModelState.AddModelError("", string.Format("修改部门信息{0}失败", viewModel.DepartmentContract.Name));
                        break;
                }
            }

            var areas = _areaService.Get(properties: new[] { "Id", "AreaName" }).Select(p => new SelectListItem
            {
                Text = p.AreaName,
                Value = p.Id.ToString(),
            }).ToList();
            ViewData["Areas"] = areas;
            ViewData["AreaItem"] = viewModel.DepartmentContract.AreaId;
            var expression = new[]
            {
                new ExpressionCriteria{ PropertyName = "DEPT_INFO_ISDEL", Value = 0, Operate = Operator.Equal },
                new ExpressionCriteria{ PropertyName = "ParentId", Value = viewModel.DepartmentContract.Id.ToString(), Operate = Operator.NotEqual },
            };
            var deps = _departmentService.Get(expression).Select(p => new SelectListItem
            {
                Text = p.Name,
                Value = p.Id.ToString(),
            }).ToList();
            ViewData["Departments"] = deps;
            ViewData["DepartItem"] = viewModel.DepartmentContract.ParentId;

            ModelState.AddModelError("", viewModel.DepartmentContract.ErrorMessage);

            var departmentInfo = _departmentService.Get(viewModel.DepartmentContract.Id);

            if (departmentInfo != null)
            {
                return View(new DepartmentViewModel(departmentInfo));
            }
            throw new ItemNotExistException("指定部门不存在!");
        }