Exemple #1
0
 public HttpResponseMessage GetAllDepartments()
 {
     try
     {
         HttpResponseMessage   httpResponse = new HttpResponseMessage();
         DepartmentDomainModel objRes       = new DepartmentDomainModel();
         objRes.listDepartments = managementRepository.GetDepartments();
         if (objRes.listDepartments != null)
         {
             objRes.isSuccess = true;
             objRes.response  = "Success";
             httpResponse     = Request.CreateResponse(HttpStatusCode.OK, objRes);
         }
         else
         {
             httpResponse = Request.CreateResponse(HttpStatusCode.Unauthorized, objRes);
         }
         return(httpResponse);
     }
     catch (Exception ex)
     {
         throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
         {
             Content      = new StringContent("An error occurred, please try again or contact the administrator."),
             ReasonPhrase = "An error occurred, please try again or contact the administrator.",
             StatusCode   = HttpStatusCode.InternalServerError
         });
     }
 }
Exemple #2
0
        /// <summary>
        /// 从数据库获取部门结构树。
        /// </summary>
        /// <returns></returns>
        private void GetDepartmentTreeByParentIdFromDatabase(DepartmentDomainModel tree, string parentId)
        {
            List <DepartmentInfoModel> list = GetDepartmentInfoByParentIdFromDatabase(parentId);

            if (list != null && list.Count > 0)
            {
                tree.ChildDepartment = new Dictionary <string, DepartmentDomainModel>();

                DepartmentDomainModel node = null;
                foreach (DepartmentInfoModel item in list)
                {
                    node = new DepartmentDomainModel();
                    node.DepartmentId    = item.DepartmentId;
                    node.MemberTotal     = GetDepartmentMemberTotal(item.DepartmentId);
                    node.ParentId        = item.ParentId;
                    node.DepartmentName  = item.DepartmentName;
                    node.Description     = item.Description;
                    node.ChildDepartment = new Dictionary <string, DepartmentDomainModel>();

                    GetDepartmentTreeByParentIdFromDatabase(node, node.DepartmentId);

                    tree.ChildDepartment.Add(node.DepartmentId, node);
                }
            }
            else
            {
                tree.ChildDepartment = null;
            }
        }
Exemple #3
0
        public void DataToDomainModelMustMatch()
        {
            var timeStamp = DateTime.Now;

            var sourceDataModel = new Department()
            {
                ID          = 1,
                Created     = timeStamp,
                RowVersion  = "rowversion",
                Description = "This is a Test Department",
                Name        = "Test Department"
            };

            var expectedDomainModel = new DepartmentDomainModel()
            {
                ID          = 1,
                Created     = timeStamp,
                RowVersion  = "rowversion",
                Description = "This is a Test Department",
                Name        = "Test Department"
            };

            var mappedDomainModel = _mapper.Map <IDepartmentDomainModel>(sourceDataModel);

            mappedDomainModel.Should().BeEquivalentTo(expectedDomainModel);
        }
Exemple #4
0
        /// <summary>
        /// 根据ID删除部门信息。
        /// </summary>
        /// <param name="departmentId"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public bool DeleteDepartmentById(string departmentId, out string message)
        {
            bool result = false;

            message = "成功删除该部门";

            DepartmentDomainModel model = GetDepartmentDomainInfoById(departmentId);

            if (model == null)
            {
                message = "该部门信息不存在";
                return(false);
            }

            if (model.ChildDepartment != null && model.ChildDepartment.Count > 0)
            {
                message = "操作失败,该部门包含下级部门,请移除后再试";
                return(false);
            }

            if (model.MemberTotal > 0)
            {
                message = "操作失败,该部门包含成员用户,请移除后再试";
                return(false);
            }

            try
            {
                BeginTransaction();

                string sql             = @"
UPDATE user_info SET
    department_id = NULL
WHERE
    department_id = $department_id$
";
                ParameterCollection pc = new ParameterCollection();
                pc.Add("department_id", departmentId);

                if (Delete(departmentId) > 0)
                {
                    result = ExecuteNonQuery(sql, pc) >= 0;

                    if (result)
                    {
                        CommitTransaction();
                        GetDepartmentTree(true);
                    }
                }
            }
            catch (Exception ex)
            {
                RollbackTransaction();
                LogUtil.Error("删除部门信息异常", ex);
                throw ex;
            }

            return(result);
        }
        public DepartmentDomainModel GetSingleDepartment(int departID)
        {
            DepartmentDomainModel single = db.DEPARTMENTs.Where(t => t.DEPARTMENT_ID == departID).Select(t => new DepartmentDomainModel {
                DEPARTMENT_ID   = t.DEPARTMENT_ID,
                DEPARTMENT_NAME = t.DEPARTMENT_NAME,
                DEPARTMENT_HEAD = t.DEPARTMENT_HEAD
            }).First();

            return(single);
        }
        public void GetDepartmentTreeFromDatabaseTest()
        {
            DepartmentInfoService_Accessor target   = new DepartmentInfoService_Accessor(); // TODO: 初始化为适当的值
            DepartmentDomainModel          expected = null;                                 // TODO: 初始化为适当的值
            DepartmentDomainModel          actual;

            actual = target.GetDepartmentTreeFromDatabase();
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("验证此测试方法的正确性。");
        }
Exemple #7
0
        /// <summary>
        /// 从数据库获取部门结构树。
        /// </summary>
        /// <returns></returns>
        private DepartmentDomainModel GetDepartmentTreeFromDatabase()
        {
            DepartmentDomainModel tree = new DepartmentDomainModel();

            tree.DepartmentName = "根节点";
            tree.DepartmentId   = null;
            tree.ParentId       = null;

            GetDepartmentTreeByParentIdFromDatabase(tree, null);

            return(tree);
        }
Exemple #8
0
        /// <summary>
        /// 获取部门结构树。
        /// </summary>
        /// <param name="clearCache"></param>
        /// <returns></returns>
        public DepartmentDomainModel GetDepartmentTree(bool clearCache)
        {
            string cacheKey            = CacheKey.DEPARTMENT_TREE;
            DepartmentDomainModel tree = CacheUtil.Get <DepartmentDomainModel>(cacheKey);

            if (tree == null || clearCache)
            {
                tree = GetDepartmentTreeFromDatabase();
                if (tree != null)
                {
                    CacheUtil.Set(cacheKey, tree);
                }
            }

            return(tree);
        }
 public ActionResult AddUpdateDepartment(DepartmentDomainModel model)
 {
     if (model != null)
     {
         var serialized = new JavaScriptSerializer().Serialize(model);
         var client     = new HttpClient();
         var content    = new StringContent(serialized, System.Text.Encoding.UTF8, "application/json");
         client.BaseAddress = new Uri(HttpContext.Request.Url.AbsoluteUri);
         var result = client.PostAsync(BaseURL + "/api/Management/AddupdateDepartment", content).Result;
         if (result.StatusCode == HttpStatusCode.OK)
         {
             var contents = result.Content.ReadAsStringAsync().Result;
             var Response = new JavaScriptSerializer().Deserialize <ResponseModel>(contents);
         }
     }
     return(RedirectToAction("_Departments"));
 }
Exemple #10
0
        /// <summary>
        /// 根据部门ID从缓存的部门结构树中获取实体。
        /// </summary>
        /// <param name="tree"></param>
        /// <param name="departmentId"></param>
        /// <returns></returns>
        private DepartmentDomainModel GetDepartmentDomainModelFromTree(DepartmentDomainModel tree, string departmentId)
        {
            DepartmentDomainModel result = null;

            if (tree.DepartmentId == departmentId)
            {
                return(tree);
            }

            if (tree.ChildDepartment != null && tree.ChildDepartment.Count > 0)
            {
                foreach (DepartmentDomainModel child in tree.ChildDepartment.Values)
                {
                    result = GetDepartmentDomainModelFromTree(child, departmentId);
                    if (result != null)
                    {
                        return(result);
                    }
                }
            }

            return(null);
        }
Exemple #11
0
 public HttpResponseMessage AddUpdateDepartment(DepartmentDomainModel model)
 {
     try
     {
         HttpResponseMessage httpResponse = new HttpResponseMessage();
         ResponseDomainModel res          = new ResponseDomainModel();
         if (model != null && !string.IsNullOrWhiteSpace(model.DepartmentName))
         {
             res = managementRepository.AddUpdateDepartment(model);
             if (res != null && res.isSuccess)
             {
                 httpResponse = Request.CreateResponse(HttpStatusCode.OK, res);
             }
             else
             {
                 httpResponse = Request.CreateResponse(HttpStatusCode.Unauthorized, res);
             }
         }
         else
         {
             res.isSuccess = false;
             res.response  = "Please enter department name";
             httpResponse  = Request.CreateResponse(HttpStatusCode.Unauthorized, res);
         }
         return(httpResponse);
     }
     catch (Exception ex)
     {
         ErrorLog.LogError(ex);
         throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
         {
             Content      = new StringContent("An error occurred, please try again or contact the administrator."),
             ReasonPhrase = "An error occurred, please try again or contact the administrator.",
             StatusCode   = HttpStatusCode.InternalServerError
         });
     }
 }
Exemple #12
0
        /// <summary>
        /// 根据ID从缓存中获取部门领域模型。
        /// </summary>
        /// <param name="departmentId"></param>
        /// <returns></returns>
        public DepartmentDomainModel GetDepartmentDomainInfoById(string departmentId)
        {
            DepartmentDomainModel tree = GetDepartmentTree(false);

            return(GetDepartmentDomainModelFromTree(tree, departmentId));
        }
Exemple #13
0
        /// <summary>
        /// 创建部门信息。
        /// </summary>
        /// <param name="departmentName">部门名称。</param>
        /// <param name="description">部门描述。</param>
        /// <param name="srcDepartmentId">源部门ID。</param>
        /// <param name="level">级别:1同级部门,2下级部门。</param>
        /// <returns></returns>
        public bool CreateNewDepartment(string departmentName, string description, string srcDepartmentId, DepartmentLevel level, out string message)
        {
            bool result = false;

            message = "操作失败,请与管理员联系";

            if (ExistDepartmentName(departmentName))
            {
                message = string.Format("操作失败,已经存在名为【{0}】的部门", departmentName);
                return(false);
            }

            string sql             = @"
INSERT INTO [department_info]
    ([department_id],
    [parent_id],
    [department_name],
    [description],
    [sort_order],
    [created_on],
    [created_by],
    [modified_on],
    [modified_by],
    [status_code])
VALUES
    (NEWID(),
    $parendId$,
    $departmentName$,
    $description$,
    0,
    GETDATE(),
    $createdBy$,
    NULL,
    NULL,
    0)
";
            ParameterCollection pc = new ParameterCollection();

            pc.Add("departmentName", departmentName);
            pc.Add("description", description);
            pc.Add("createdBy", SessionUtil.Current.UserId);

            DepartmentDomainModel srcDepartmentInfo = GetDepartmentDomainInfoById(srcDepartmentId);

            if (srcDepartmentInfo == null)
            {
                pc.Add("parendId", DBNull.Value);
            }
            else
            {
                switch (level)
                {
                case DepartmentLevel.SameLevel:
                    if (srcDepartmentInfo.ParentId == null)
                    {
                        pc.Add("parendId", DBNull.Value);
                    }
                    else
                    {
                        pc.Add("parentId", srcDepartmentInfo.ParentId);
                    }
                    break;

                case DepartmentLevel.LowerLevel:
                    pc.Add("parendId", srcDepartmentInfo.DepartmentId);
                    break;

                default:
                    break;
                }
            }

            result = ExecuteNonQuery(sql, pc) > 0;

            if (result)
            {
                GetDepartmentTree(true);
                message = "成功创建部门信息";
            }

            return(result);
        }