/// <summary>
        /// 获取指定公司下的所有部门
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public List <Department> GetDepartmentByCorp(GetDepartmentByCorpRQ request)
        {
            var result = new List <Department>();

            DBHelper.NoLockInvokeDB(() =>
            {
                using (var db = new WebFrameworksDB())
                {
                    var query = db.Department.GroupJoin(db.Corporation, department => department.CorporationId, corp => corp.Id, (department, corp) => new { department, corp = corp.FirstOrDefault() });
                    if (request.CorporationId > 0)
                    {
                        query = query.Where(p => p.department.CorporationId == request.CorporationId);
                    }

                    //排序
                    query = query.OrderBy(p => p.department.CorporationId).ThenBy(p => p.department.Code);

                    result = query.ToList().ConvertAll(p => new Department
                    {
                        Id              = p.department.Id,
                        ParentId        = p.department.ParentId,
                        Name            = p.department.Name,
                        Code            = p.department.Code,
                        Enabled         = p.department.Enabled,
                        Sort            = p.department.Sort,
                        CreatedTime     = p.department.CreatedTime,
                        CorporationId   = p.corp.Id,
                        CorporationName = p.corp.Name
                    });
                }
            });

            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取指定公司下的部门
        /// 如果没有指定则获取所有公司下的所有部门
        /// </summary>
        /// <returns></returns>
        public ActionResult GetDepartmentByCorp(GetDepartmentByCorpRQ request)
        {
            var           result = string.Empty;
            StringBuilder sb     = new StringBuilder();

            using (var factory = new ChannelFactory <IWebFxsDepartmentService>("*"))
            {
                var client = factory.CreateChannel();
                var rs     = client.GetDepartmentByCorp(request);
                if (rs.ReturnCode == Entity.ReturnCodeType.Success)
                {
                    var depts = rs.Content;
                    if (depts.HasValue())
                    {
                        sb.Append(RecursionDepartment(depts, 0));
                        sb     = sb.Remove(sb.Length - 2, 2);
                        result = sb.ToString();
                    }
                    else
                    {
                        result = "[]";
                    }
                }
            }

            return(Content(result));
        }
        /// <summary>
        /// 获取指定公司下的部门
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public WebFxsResult <List <Department> > GetDepartmentByCorp(GetDepartmentByCorpRQ request)
        {
            var result = new WebFxsResult <List <Department> >
            {
                ReturnCode = ReturnCodeType.Error,
                Content    = new List <Department>()
            };

            var departments = repository.GetDepartmentByCorp(request);

            result.ReturnCode = ReturnCodeType.Success;
            result.Content    = departments;

            return(result);
        }