コード例 #1
0
 public static IQueryable <T> ThenBy <T>(this IQueryable <T> source, PropertySortCondition condition)
 {
     if (condition == null)
     {
         throw new ArgumentNullException("condition");
     }
     return(QuerySortHelper <T> .ThenBy(source, condition.PropertyName, condition.ListSortDirection));
 }
コード例 #2
0
        public IHttpActionResult GetAll(string query = "", string sort = "", int pageSize = Int32.MaxValue, int pageIndex = 0, bool showHidden = false)
        {
            //初始化排序条件
            var sortConditions = PropertySortCondition.Instance(sort);

            //特殊字段排序调整
            if (sort.StartsWith("CategoryName"))
            {
                sortConditions[0].PropertyName = "Category";
            }


            var stores = _storeService.GetAllStores(query, pageIndex, pageSize, showHidden, sortConditions);

            var response = new ListResponse <StoreModel>
            {
                Paging = new Paging
                {
                    PageIndex   = pageIndex,
                    PageSize    = pageIndex,
                    Total       = stores.TotalCount,
                    FilterCount = string.IsNullOrEmpty(query) ? stores.TotalCount : stores.Count,
                },
                Data = stores.Select(s =>
                {
                    var storeModel           = s.ToModel();
                    storeModel.StoreCategory = s.StoreCategory.GetFormattedBreadCrumb(_categoryService);


                    if (storeModel.AllOpened)
                    {
                        storeModel.Opend = true;
                    }
                    else
                    {
                        var date = Convert.ToDateTime(string.Format("{0} {1}", s.StartTime.Value.ToLongDateString(), DateTime.Now.ToShortTimeString()));

                        storeModel.Opend = date >= s.StartTime.Value && date <= s.EndTime.Value;
                    }

                    return(storeModel);
                })
            };

            response.Statistics = new StoresStatisticsModel
            {
                StoresCount     = stores.Count,
                ProductCount    = response.Data.Sum(s => s.ProductsCount),
                CoorperateCount = response.Data.Where(s => !s.SelfSupport).Count(),
                InSalesCount    = response.Data.Where(s => s.Opend).Count()
            };

            //activity log
            _customerActivityService.InsertActivity("GetStoreList", "获取商家列表信息");

            return(Ok(response));
        }
コード例 #3
0
        public IHttpActionResult GetAllInMap(PropertyAdvanceConditionModel advance)
        {
            //初始化排序条件
            var sortConditions = PropertySortCondition.Instance(advance.Sort);

            var governmentTypes = new List <int>();

            if (advance.Government.IsCompany)
            {
                governmentTypes.Add((int)GovernmentType.Government);
            }
            if (advance.Government.IsInstitution)
            {
                governmentTypes.Add((int)GovernmentType.Institution);
            }
            if (advance.Government.IsCompany)
            {
                governmentTypes.Add((int)GovernmentType.Company);
            }

            if (governmentTypes.Count == 3)
            {
                governmentTypes = new List <int>();
            }

            //高级搜索参数设置

            var governments = _governmentService.GetAllGovernmentUnits(governmentTypes, advance.Query, 0, int.MaxValue, true, sortConditions);

            var response = new ListResponse <GeoGorvernmentModel>
            {
                Time   = advance.Time,
                Paging = new Paging
                {
                    PageIndex   = 0,
                    PageSize    = int.MaxValue,
                    Total       = governments.TotalCount,
                    FilterCount = string.IsNullOrEmpty(advance.Query) ? governments.TotalCount : governments.Count,
                },
                Data = governments.Select(s =>
                {
                    var geoGovernment = s.ToGeoModel();
                    return(geoGovernment);
                })
            };

            //activity log
            _accountUserActivityService.InsertActivity("GetpropertyList", "获取单位列表信息");

            return(Ok(response));
        }
コード例 #4
0
        public IHttpActionResult GetAll(int storeId = 0, string query = "", string sort = "", int pageSize = Int32.MaxValue, int pageIndex = 0, bool showHidden = false)
        {
            //获取未删除商家的商品
            var store = _storeService.GetStoreById(storeId);

            if (store == null || store.Deleted)
            {
                return(NotFound());
            }

            //初始化排序条件
            var sortConditions = PropertySortCondition.Instance(sort);

            //特殊字段排序调整
            if (sort.StartsWith("CategoryName"))
            {
                sortConditions[0].PropertyName = "Category";
            }


            var products = _productService.GetAllProducts(storeId, query, pageIndex, pageSize, showHidden, sortConditions);

            var response = new ListResponse <ProductModel>
            {
                Paging = new Paging
                {
                    PageIndex   = pageIndex,
                    PageSize    = pageIndex,
                    Total       = products.TotalCount,
                    FilterCount = string.IsNullOrEmpty(query) ? products.TotalCount : products.Count,
                },
                Data = products.Select(s =>
                {
                    var productModel             = s.ToModel();
                    productModel.ProductCategory = s.ProductCategory.Name;
                    return(productModel);
                })
            };

            _customerActivityService.InsertActivity("GetProducts", "获取 {0} 的商品列表", store.Name);

            return(Ok(response));
        }
コード例 #5
0
        public IHttpActionResult GetAll(string query = "", string sort = "", int pageSize = Int32.MaxValue, int pageIndex = 0, bool showHidden = false)
        {
            //初始化排序条件
            var sortConditions = PropertySortCondition.Instance(sort);

            //特殊字段排序调整
            if (sort.ToLower().StartsWith("governmentname"))
            {
                sortConditions[0].PropertyName = "Government";
            }


            var accounts = _accountService.GetAllAccountUsers(query, pageIndex, pageSize, showHidden, sortConditions);

            var response = new ListResponse <AccountUserModel>
            {
                Paging = new Paging
                {
                    PageIndex   = pageIndex,
                    PageSize    = pageIndex,
                    Total       = accounts.TotalCount,
                    FilterCount = string.IsNullOrEmpty(query) ? accounts.TotalCount : accounts.Count,
                },
                Data = accounts.Select(s =>
                {
                    var accountModel            = s.ToModel();
                    accountModel.GovernmentName = s.Government.Name;
                    return(accountModel);
                })
            };

            //activity log
            _accountUserActivityService.InsertActivity("GetAccountList", "获取用户列表信息");

            return(Ok(response));
        }
コード例 #6
0
        public BaseResponse <GetUserInfoResult> GetUserInfo(GetUserInfoParameter parameter)
        {
            BaseResponse <GetUserInfoResult> response = new BaseResponse <GetUserInfoResult>();

            try
            {
                if (string.IsNullOrEmpty(parameter.Sort))
                {
                    parameter.Sort = "UserToken";
                }
                if (string.IsNullOrEmpty(parameter.Order))
                {
                    parameter.Order = "asc";
                }
                if (parameter.Page == 0)
                {
                    parameter.Page = 1;
                }
                if (parameter.PageSize == 0)
                {
                    parameter.PageSize = 10;
                }

                switch (parameter.Sort)
                {
                case "RoleID":
                    parameter.Sort = "RoleName";
                    break;
                }

                int count = 0;
                if (parameter.Page == 0)
                {
                    parameter.Page = 1;
                }
                using (var dataContext = new iCMSDbContext())
                {
                    IQueryable <HBUser>     userInfoList = dataContext.HBUsers.Where(p => p.IsDeleted == false);
                    ListSortDirection       sortOrder    = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending;
                    PropertySortCondition[] sortList     = new PropertySortCondition[]
                    {
                        new PropertySortCondition(parameter.Sort, sortOrder),
                        new PropertySortCondition("UserID", sortOrder),
                    };

                    var currentUser = dataContext.HBUsers.Where(t => t.UserID == parameter.CurrentUserID).FirstOrDefault();
                    if (currentUser == null)
                    {
                        response.IsSuccessful = false;
                        return(response);
                    }

                    int currentRoleID = currentUser.RoleID;
                    //根据当前登录用户角色来显示用户
                    switch (currentRoleID)
                    {
                    case 1:
                        //超级管理员
                        userInfoList = userInfoList.Where(t => true);
                        break;

                    case 3:
                        //一级管理员
                        userInfoList = userInfoList.Where(t => t.RoleID == 3 || t.RoleID == 4);
                        break;

                    case 4:
                        //二级管理员
                        userInfoList = userInfoList.Where(t => t.RoleID == 4);
                        break;
                    }

                    if (parameter.OrganizationID.HasValue && parameter.OrganizationID.Value > 0)
                    {
                        userInfoList = userInfoList.Where(t => t.OrganizationID == parameter.OrganizationID.Value);
                    }

                    //userInfoList = userInfoList.OrderBy(sortList);

                    count = userInfoList.Count();

                    var organArray = organRepository.GetDatas <Organization>(t => !t.IsDeleted, true).ToList();
                    //if (parameter.Page > -1)
                    //{
                    //    userInfoList = userInfoList
                    //        .Skip((parameter.Page - 1) * parameter.PageSize)
                    //        .Take(parameter.PageSize);
                    //}

                    var tempUserInfoList = userInfoList
                                           .ToArray()
                                           .Select(user =>
                    {
                        HBRole roleNameObj = dataContext.HBRoles.FirstOrDefault(role => role.RoleID == user.RoleID);
                        var organ          = organArray.Where(t => t.OrganID == user.OrganizationID).FirstOrDefault();
                        return(new HBUserInfo
                        {
                            UserID = user.UserID,
                            RoleID = user.RoleID,
                            RoleName = roleNameObj == null ? string.Empty : roleNameObj.RoleName,
                            UserToken = user.UserToken,
                            Gender = user.Gender,
                            LastUpdateUserID = user.LastUpdateUserID,
                            OrganizationID = user.OrganizationID,
                            OrganizationName = organ == null ? string.Empty : organ.OrganFullName,
                            UseStatus = user.UseStatus,
                            AddDate = user.AddDate,
                            OrganTypeID = organ == null ? 0 : organ.OrganTypeID
                        });
                    }).AsQueryable();

                    tempUserInfoList = tempUserInfoList.OrderBy(sortList);

                    if (parameter.Page > -1)
                    {
                        tempUserInfoList = tempUserInfoList
                                           .Skip((parameter.Page - 1) * parameter.PageSize)
                                           .Take(parameter.PageSize);
                    }

                    response.Result = new GetUserInfoResult
                    {
                        Total        = count,
                        UserInfoList = tempUserInfoList.ToList()
                    };

                    response.IsSuccessful = true;
                    response.Code         = null;
                    return(response);
                }
            }
            catch (Exception e)
            {
                response.IsSuccessful = false;
                response.Code         = null;
                return(response);
            }
        }
コード例 #7
0
ファイル: PropertyRentService.cs プロジェクト: YuweiDai/CS
        public IPagedList <PropertyRent> GetRentListRecords(int page = 0, int results = int.MaxValue, string sortField = "", string sortOrder = "", string tabKey = "即将过期", params PropertySortCondition[] sortConditions)
        {
            var query = _propertyRentRepository.Table.AsNoTracking();

            Expression <Func <CSCZJ.Core.Domain.Properties.PropertyRent, bool> > expression = p => !p.Deleted;
            var now   = DateTime.Now;
            var rents = new List <PropertyRent>();

            query = query.Where(expression);
            switch (tabKey)
            {
            case "即将过期":
                query = query.Where(p => System.Data.Entity.DbFunctions.DiffDays(now, p.BackTime) >= 0 && System.Data.Entity.DbFunctions.DiffDays(now, p.BackTime) < 30);
                break;

            case "已经过期":
                query = query.Where(p => System.Data.Entity.DbFunctions.DiffDays(now, p.BackTime) < 0);
                break;

            case "全部信息":
                break;
            }


            var defaultSort = new PropertySortCondition("Id", System.ComponentModel.ListSortDirection.Ascending);

            if (sortField == "" || sortField == null || sortField == "null")
            {
                sortField   = "BackTime";
                defaultSort = new PropertySortCondition(sortField, System.ComponentModel.ListSortDirection.Ascending);
            }
            else
            {
                sortField = sortField.Substring(0, 1).ToUpper() + sortField.Substring(1);
                if (sortOrder == "ascend")
                {
                    defaultSort = new PropertySortCondition(sortField, System.ComponentModel.ListSortDirection.Ascending);
                }
                else
                {
                    defaultSort = new PropertySortCondition(sortField, System.ComponentModel.ListSortDirection.Descending);
                }
            }

            if (sortConditions != null && sortConditions.Length != 0)
            {
                query = query.Sort(sortConditions[0]);
            }
            else
            {
                query = query.Sort(defaultSort);
            }

            var reds = new PagedList <CSCZJ.Core.Domain.Properties.PropertyRent>();

            reds.TotalCount = query.Count();
            reds.TotalPages = query.Count() / results;
            if (query.Count() % results > 0)
            {
                reds.TotalPages++;
            }
            reds.PageSize  = results;
            reds.PageIndex = page;
            reds.AddRange(query.ToList());

            return(reds);
        }
コード例 #8
0
        public BaseResponse <QueryLogResult> QueryLog(QueryLogParameter param)
        {
            BaseResponse <QueryLogResult> response = new BaseResponse <QueryLogResult>();
            QueryLogResult result = new QueryLogResult();

            try
            {
                var logQuerable = syslogRepsoitory.GetDatas <SysLog>(t => true, true);
                if (param.RoleID.HasValue && param.RoleID.Value > 0)
                {
                    logQuerable = logQuerable.Where(t => t.RoleID == param.RoleID.Value);
                }
                if (param.BeginTime.HasValue && param.BeginTime.Value != DateTime.MinValue)
                {
                    logQuerable = logQuerable.Where(t => t.OperationDate >= param.BeginTime.Value);
                }
                if (param.EndTime.HasValue && param.EndTime.Value != DateTime.MinValue)
                {
                    logQuerable = logQuerable.Where(t => t.OperationDate <= param.EndTime.Value);
                }
                if (!string.IsNullOrEmpty(param.Keyword))
                {
                    logQuerable = logQuerable.Where(t => (!string.IsNullOrEmpty(t.UserToken) && t.UserToken.ToUpper().Contains(param.Keyword.ToUpper())) || (!string.IsNullOrEmpty(t.OrganName) && t.OrganName.ToUpper().Contains(param.Keyword.ToUpper())));
                }

                int total = logQuerable.Count();

                ListSortDirection       sortOrder = param.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending;
                PropertySortCondition[] sortList  = new PropertySortCondition[]
                {
                    new PropertySortCondition(param.Sort, sortOrder),
                    new PropertySortCondition("ID", sortOrder),
                };
                logQuerable.OrderBy(sortList);
                if (param.Page > 0)
                {
                    logQuerable = logQuerable
                                  .Skip((param.Page - 1) * param.PageSize)
                                  .Take(param.PageSize);
                }

                logQuerable.ToList().ForEach(l =>
                {
                    LogInfo logInfo         = new LogInfo();
                    logInfo.ID              = l.ID;
                    logInfo.OperationUserID = l.OperationUserID;
                    logInfo.UserToken       = l.UserToken;
                    logInfo.RoleID          = l.RoleID;
                    logInfo.RoleName        = l.RoleName;
                    logInfo.Content         = l.Content;
                    logInfo.OrganID         = l.OrganID;
                    logInfo.OrganName       = l.OrganName;
                    logInfo.IP              = l.IP;
                    logInfo.HTTPType        = l.HTTPType;
                    logInfo.OperationDate   = l.OperationDate;

                    result.LogList.Add(logInfo);
                });

                result.Total    = total;
                response.Result = result;
                return(response);
            }
            catch (Exception e)
            {
                LogHelper.WriteLog(e);
                response.IsSuccessful = false;
                response.Reason       = e.Message;

                return(response);
            }
        }
コード例 #9
0
ファイル: CollectionsExtensions.cs プロジェクト: yagqfhd/fd
 /// <summary>
 ///     把IQueryable[T]集合按指定属性排序条件进行排序
 /// </summary>
 /// <typeparam name="T">动态类型</typeparam>
 /// <param name="source">要排序的数据集</param>
 /// <param name="sortCondition">列表属性排序条件</param>
 /// <returns></returns>
 public static IOrderedQueryable <T> OrderBy <T>(this IQueryable <T> source, PropertySortCondition sortCondition)
 {
     Argument.NullParam(sortCondition, "sortCondition");
     return(source.OrderBy(sortCondition.PropertyName, sortCondition.ListSortDirection));
 }
コード例 #10
0
        /// <summary>
        /// 查询角色信息
        /// </summary>
        /// <param name="Parameter"></param>
        /// <returns></returns>
        public BaseResponse <RolesDataResult> QueryRoleInfo(QueryRolesInfoParameter Parameter)
        {
            BaseResponse <RolesDataResult> result = new BaseResponse <RolesDataResult>();

            try
            {
                Validate validate = new Validate(userRepository, roleRepository);
                result = validate.ValidateQueryRoleInfoParams(Parameter.Sort, Parameter.Order);
                if (!result.IsSuccessful)
                {
                    return(result);
                }

                int count = 0;
                if (Parameter.Page == 0)
                {
                    Parameter.Page = 1;
                }
                using (var dataContext = new iCMSDbContext())
                {
                    IQueryable <iCMS.Frameworks.Core.DB.Models.Role> roleInfoList = null;
                    ListSortDirection       sortOrder = Parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending;
                    PropertySortCondition[] sortList  = new PropertySortCondition[]
                    {
                        new PropertySortCondition(Parameter.Sort, sortOrder),
                        new PropertySortCondition("RoleID", sortOrder),
                    };
                    if (Parameter.IsSuperAdmin)
                    {
                        roleInfoList = dataContext.Role.OrderBy(sortList);
                    }
                    else
                    {
                        roleInfoList = dataContext.Role.Where(t => t.IsShow == 1).OrderBy(sortList);
                    }
                    count = roleInfoList.Count();
                    if (Parameter.Page > -1)
                    {
                        roleInfoList = roleInfoList
                                       .Skip((Parameter.Page - 1) * Parameter.PageSize)
                                       .Take(Parameter.PageSize);
                    }
                    var tempRoleInfoList = roleInfoList
                                           .ToArray()
                                           .Select(role =>
                    {
                        var roleModuleObj =
                            (from roleModule in dataContext.RoleModule
                             join module in dataContext.Module on roleModule.ModuleCode equals module.Code
                             where roleModule.RoleCode == role.RoleCode && module.IsUsed == 1
                             select new
                        {
                            module.Code,
                            module.ModuleName,
                        })
                            .ToArray();
                        return(new RoleInfo
                        {
                            RoleID = role.RoleID,
                            RoleCode = role.RoleCode,
                            RoleName = role.RoleName,
                            AddDate = role.AddDate.ToString("yyyy-MM-dd HH:mm:ss"),
                            ModuleCode = string.Join("|", roleModuleObj.Select(p => p.Code)),
                            ModuleName = string.Join("|", roleModuleObj.Select(p => p.ModuleName)),
                            IsShow = role.IsShow,
                            IsDeault = role.IsDeault,    //王颖辉添加 2016-08-25
                        });
                    })
                                           .ToList();
                    result.Result = new RolesDataResult
                    {
                        Total    = count,
                        RoleInfo = tempRoleInfoList,
                    };
                    result.IsSuccessful = true;
                    return(result);
                }
            }
            catch (Exception e)
            {
                LogHelper.WriteLog(e);
                result.IsSuccessful = false;
                result.Code         = "003951";
                result.Result       = null;
                return(result);
            }
        }
コード例 #11
0
        public BaseResponse <GetUserInfoResult> GetUserInfo(GetUserInfoParameter parameter)
        {
            BaseResponse <GetUserInfoResult> response = new BaseResponse <GetUserInfoResult>();

            try
            {
                switch (parameter.Sort)
                {
                case "RoleName":
                    parameter.Sort = "RoleID";
                    break;
                }

                int count = 0;
                if (parameter.Page == 0)
                {
                    parameter.Page = 1;
                }
                using (var dataContext = new iCMSDbContext())
                {
                    IQueryable <HBUser>     userInfoList = dataContext.HBUsers.Where(p => p.IsDeleted == false);
                    ListSortDirection       sortOrder    = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending;
                    PropertySortCondition[] sortList     = new PropertySortCondition[]
                    {
                        new PropertySortCondition(parameter.Sort, sortOrder),
                        new PropertySortCondition("UserID", sortOrder),
                    };

                    var currentUser = dataContext.HBUsers.Where(t => t.UserID == parameter.CurrentUserID).FirstOrDefault();
                    if (currentUser == null)
                    {
                        response.IsSuccessful = false;
                        return(response);
                    }

                    int currentRoleID = currentUser.RoleID;
                    //根据当前登录用户角色来显示用户
                    switch (currentRoleID)
                    {
                    case 1:
                        //超级管理员
                        userInfoList.Where(t => true);
                        break;

                    case 2:
                        //一级管理员
                        userInfoList.Where(t => t.RoleID == 2 || t.RoleID == 3);
                        break;

                    case 3:
                        userInfoList.Where(t => t.RoleID == 3);

                        break;
                    }

                    userInfoList = userInfoList.OrderBy(sortList);

                    count = userInfoList.Count();
                    if (parameter.Page > -1)
                    {
                        userInfoList = userInfoList
                                       .Skip((parameter.Page - 1) * parameter.PageSize)
                                       .Take(parameter.PageSize);
                    }

                    var tempUserInfoList = userInfoList
                                           .ToArray()
                                           .Select(user =>
                    {
                        HBRole roleNameObj = dataContext.HBRoles.FirstOrDefault(role => role.RoleID == user.RoleID);

                        return(new HBUserInfo
                        {
                            UserID = user.UserID,
                            RoleID = user.RoleID,
                            RoleName = roleNameObj == null ? "" : roleNameObj.RoleName,
                            UserToken = user.UserToken,
                            Gender = user.Gender,
                            LastUpdateUserID = user.LastUpdateID,
                            OrganizationID = user.OrganizationID,
                            OrganizationName = string.Empty
                        });
                    })
                                           .ToList();
                    response.Result = new GetUserInfoResult
                    {
                        Total        = count,
                        UserInfoList = tempUserInfoList
                    };

                    response.IsSuccessful = true;
                    response.Code         = null;
                    return(response);
                }
            }
            catch (Exception e)
            {
                response.IsSuccessful = false;
                response.Code         = null;
                return(response);
            }
        }
コード例 #12
0
        public BaseResponse <GetOrganListResult> GetOrganList(GetOrganInfoListParameter parameter)
        {
            BaseResponse <GetOrganListResult> response = new BaseResponse <GetOrganListResult>();
            GetOrganListResult result = new GetOrganListResult();

            if (string.IsNullOrEmpty(parameter.Sort))
            {
                parameter.Sort = "OrganCode";
            }
            if (string.IsNullOrEmpty(parameter.Order))
            {
                parameter.Order = "asc";
            }
            if (parameter.Page == 0)
            {
                parameter.Page = 1;
            }
            if (parameter.PageSize == 0)
            {
                parameter.PageSize = 10;
            }
            try
            {
                using (iCMSDbContext dbContext = new iCMSDbContext())
                {
                    var organQuerable = dbContext.Organizations.Where(t => !t.IsDeleted);
                    if (parameter.OrganTypeID.HasValue && parameter.OrganTypeID.Value > 0)
                    {
                        organQuerable = organQuerable.Where(t => t.OrganTypeID == parameter.OrganTypeID.Value);
                    }
                    if (!string.IsNullOrEmpty(parameter.Keyword))
                    {
                        string matchedWord = parameter.Keyword.ToUpper();
                        organQuerable = organQuerable.Where(t => t.OrganCode.ToUpper().Contains(matchedWord) || t.OrganFullName.ToUpper().Contains(matchedWord));
                    }

                    var organListLinq = from organ in organQuerable
                                        join organType in dbContext.MainOrganTypes.Where(t => !t.IsDeleted) on organ.OrganTypeID equals organType.OrganTypeID
                                        into group1
                                        from g1 in group1
                                        //join category in dbContext.OrganCategories.Where(t => !t.IsDeleted) on g1.CategoryID equals category.CategoryID
                                        //into group2
                                        //from g2 in group2


                                        join item in dbContext.Officers.Where(t => !t.IsDeleted && t.IsOnService).GroupBy(t => t.OrganizationID) on organ.OrganID equals item.Key

                                        into group3
                                        from g3 in group3.DefaultIfEmpty()


                                        select new OrganInfo
                    {
                        OrganID        = organ.OrganID,
                        OrganCode      = organ.OrganCode,
                        OrganFullName  = organ.OrganFullName,
                        OrganShortName = organ.OrganShortName,
                        OrganTypeID    = organ.OrganTypeID,
                        OrganTypeName  = g1.OrganTypeName,
                        //OrganCategoryID = g2.CategoryID,
                        //OrganCategoryName = g2.CategoryName,
                        OfficerQuanlity = g3.Count(),
                        AddDate         = organ.AddDate,
                        AreaID          = organ.AreaID
                    };

                    ListSortDirection       sortOrder = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending;
                    PropertySortCondition[] sortList  = new PropertySortCondition[]
                    {
                        new PropertySortCondition(parameter.Sort, sortOrder),
                        new PropertySortCondition("OrganID", sortOrder),
                    };

                    organListLinq = organListLinq.OrderBy(sortList);

                    int count = organListLinq.Count();
                    if (parameter.Page > -1)
                    {
                        organListLinq = organListLinq
                                        .Skip((parameter.Page - 1) * parameter.PageSize)
                                        .Take(parameter.PageSize);
                    }

                    result.OrganInfoList.AddRange(organListLinq.ToList());
                    result.Total    = count;
                    response.Result = result;

                    #region 操作日志
                    new LogManager().AddOperationLog(parameter.CurrentUserID, "获取部门列表", parameter.RequestIP);
                    #endregion

                    return(response);
                }
            }
            catch (Exception e)
            {
                response.IsSuccessful = false;
                response.Reason       = e.Message;
                return(response);
            }
        }
コード例 #13
0
        public BaseResponse <GetOfficerListResult> GetOfficerList(GetOfficerListParameter parameter)
        {
            BaseResponse <GetOfficerListResult> response = new BaseResponse <GetOfficerListResult>();
            GetOfficerListResult result = new GetOfficerListResult();

            if (string.IsNullOrEmpty(parameter.Sort))
            {
                parameter.Sort  = "OfficerID";
                parameter.Order = "asc";
            }
            try
            {
                using (iCMSDbContext dbContext = new iCMSDbContext())
                {
                    var officerQuerable = dbContext.Officers.Where(t => !t.IsDeleted && t.IsOnService);

                    //test
                    var temp = officerQuerable.ToList();

                    var currentUser = dbContext.HBUsers.Where(t => !t.IsDeleted && t.UserID == parameter.CurrentUserID).FirstOrDefault();
                    if (currentUser == null)
                    {
                        throw new Exception("数据异常");
                    }
                    if (currentUser.RoleID == 4)//如果是二级管理员,则只返回本单位的干部
                    {
                        officerQuerable = officerQuerable.Where(t => t.OrganizationID == currentUser.OrganizationID);
                    }

                    if (parameter.OrganizationID.HasValue && parameter.OrganizationID.Value > 0)
                    {
                        officerQuerable = officerQuerable.Where(t => t.OrganizationID == parameter.OrganizationID);
                    }
                    if (parameter.LevelID.HasValue && parameter.LevelID.Value > 0)
                    {
                        officerQuerable = officerQuerable.Where(t => t.LevelID == parameter.LevelID.Value);
                    }

                    var officerLinq = from off in officerQuerable
                                      join org in dbContext.Organizations
                                      on off.OrganizationID equals org.OrganID
                                      into group1
                                      from g1 in group1
                                      //join pos in dbContext.OfficerPositionTypes.Where(t => !t.IsDeleted) on off.PositionStr equals pos.PositionID into group2
                                      //from g2 in group2
                                      join lev in dbContext.OfficerLevelTypes.Where(t => !t.IsDeleted) on off.LevelID equals lev.LevelID into group3
                                      from g3 in group3
                                      //where org.OrganFullName.ToUpper().Contains(parameter.Keyword.ToUpper()) || org.OrganCode.ToUpper().Contains(parameter.Keyword.ToUpper())
                                      select new OfficerDetailInfo
                    {
                        OfficerID        = off.OfficerID,
                        Name             = off.Name,
                        Gender           = off.Gender,
                        Birthday         = off.Birthday,
                        OrganizationName = g1.OrganFullName,
                        PositionID       = 0,            //g2.PositionID,
                        PositionName     = off.PositionStr,
                        LevelID          = g3.LevelID,
                        LevelName        = g3.LevelName,
                        OnOfficeDate     = off.OnOfficeDate,
                        OrganizationID   = off.OrganizationID,
                        CurrentScore     = off.CurrentScore,
                        IdentifyNumber   = off.IdentifyCardNumber
                    };


                    var temp2 = officerLinq.ToList();

                    if (!string.IsNullOrEmpty(parameter.Keyword))
                    {
                        officerLinq = officerLinq.Where(t => t.Name.Contains(parameter.Keyword) || t.IdentifyNumber.Contains(parameter.Keyword) || t.OrganizationName.Contains(parameter.Keyword));
                    }
                    ListSortDirection       sortOrder = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending;
                    PropertySortCondition[] sortList  = new PropertySortCondition[]
                    {
                        new PropertySortCondition(parameter.Sort, sortOrder),
                        new PropertySortCondition("OfficerID", sortOrder),
                    };

                    officerLinq = officerLinq.OrderBy(sortList);
                    int count = officerLinq.Count();
                    if (parameter.Page > -1)
                    {
                        officerLinq = officerLinq
                                      .Skip((parameter.Page - 1) * parameter.PageSize)
                                      .Take(parameter.PageSize);
                    }

                    result.OfficerInfoList.AddRange(officerLinq.ToList());
                    result.Total    = count;
                    response.Result = result;

                    #region 操作日志
                    new LogManager().AddOperationLog(parameter.CurrentUserID, "获取积分申请详细信息", parameter.RequestIP);
                    #endregion

                    return(response);
                }
            }
            catch (Exception e)
            {
                response.IsSuccessful = false;
                response.Reason       = "获取单位列表发生异常";

                return(response);
            }
        }
コード例 #14
0
        public Core.PagedList <Core.Domain.Properties.PropertyPatrol> GetPatrolListRecords(int page = 0, int results = int.MaxValue, string sortField = "", string sortOrder = "", string tabKey = "即将过期", params Core.PropertySortCondition[] sortConditions)
        {
            var query = _propertyPatrolRepository.Table.AsNoTracking();

            Expression <Func <CSCZJ.Core.Domain.Properties.PropertyPatrol, bool> > expression = p => !p.Deleted;
            var now     = DateTime.Now;
            var patrols = new List <PropertyPatrol>();

            query = query.Where(expression);
            switch (tabKey)
            {
            case "今年巡查":
                query = query.Where(p => p.PatrolDate.Year == now.Year);
                break;

            case "往年巡查":
                query = query.Where(p => p.PatrolDate.Year < now.Year);
                break;

            case "全部":
                break;
            }


            var defaultSort = new PropertySortCondition("Id", System.ComponentModel.ListSortDirection.Ascending);

            if (sortField == "" || sortField == null || sortField == "null")
            {
                sortField   = "PatrolDate";
                defaultSort = new PropertySortCondition(sortField, System.ComponentModel.ListSortDirection.Ascending);
            }
            else
            {
                sortField = sortField.Substring(0, 1).ToUpper() + sortField.Substring(1);
                if (sortOrder == "ascend")
                {
                    defaultSort = new PropertySortCondition(sortField, System.ComponentModel.ListSortDirection.Ascending);
                }
                else
                {
                    defaultSort = new PropertySortCondition(sortField, System.ComponentModel.ListSortDirection.Descending);
                }
            }

            if (sortConditions != null && sortConditions.Length != 0)
            {
                query = query.Sort(sortConditions[0]);
            }
            else
            {
                query = query.Sort(defaultSort);
            }

            var reds = new PagedList <CSCZJ.Core.Domain.Properties.PropertyPatrol>();

            reds.TotalCount = query.Count();
            reds.TotalPages = query.Count() / results;
            if (query.Count() % results > 0)
            {
                reds.TotalPages++;
            }
            reds.PageSize  = results;
            reds.PageIndex = page;
            reds.AddRange(query.ToList());

            return(reds);
        }
コード例 #15
0
 /// <summary>
 ///     把IOrderedQueryable[T]集合继续指定属性排序方式进行排序
 /// </summary>
 /// <typeparam name="T">动态类型</typeparam>
 /// <param name="source">要排序的数据集</param>
 /// <param name="sortCondition">排序方向</param>
 /// <returns></returns>
 public static IOrderedQueryable <T> ThenBy <T>(this IOrderedQueryable <T> source, PropertySortCondition sortCondition)
 {
     return(source.ThenBy(sortCondition.PropertyName, sortCondition.ListSortDirection));
 }
コード例 #16
0
 /// <summary>
 ///     把IOrderedQueryable[T]集合继续指定属性排序方式进行排序
 /// </summary>
 /// <typeparam name="T">动态类型</typeparam>
 /// <param name="source">要排序的数据集</param>
 /// <param name="sortCondition">列表属性排序条件</param>
 /// <returns></returns>
 public static IOrderedQueryable <T> ThenBy <T>(this IOrderedQueryable <T> source, PropertySortCondition sortCondition)
 {
     PublicHelper.CheckArgument(sortCondition, "sortCondition");
     return(source.ThenBy(sortCondition.PropertyName, sortCondition.ListSortDirection));
 }
コード例 #17
0
        public BaseResponse <GetOrganListResult> GetOrganList(GetOrganInfoListParameter parameter)
        {
            BaseResponse <GetOrganListResult> response = new BaseResponse <GetOrganListResult>();
            GetOrganListResult result = new GetOrganListResult();

            try
            {
                using (iCMSDbContext dbContext = new iCMSDbContext())
                {
                    var organQuerable = dbContext.Organizations.Where(t => !t.IsDeleted);
                    if (parameter.OrganTypeID.HasValue && parameter.OrganTypeID.Value > 0)
                    {
                        organQuerable = organQuerable.Where(t => t.OrganTypeID == parameter.OrganTypeID.Value);
                    }
                    if (!string.IsNullOrEmpty(parameter.Keyword))
                    {
                        organQuerable = organQuerable.Where(t => t.OrganCode.ToUpper().Equals(parameter.Keyword.ToUpper()) || t.OrganFullName.ToUpper().Equals(parameter.Keyword.ToUpper()));
                    }

                    var organListLinq = from organ in organQuerable
                                        join organType in dbContext.OrganTypes on organ.OrganTypeID equals organType.OrganTypeID
                                        into group1
                                        from g1 in group1
                                        join category in dbContext.OrganCategories on g1.CategoryID equals category.CategoryID
                                        into group2
                                        from g2 in group2
                                        join item in dbContext.Officers.GroupBy(t => t.OrganizationID) on organ.OrganID equals item.Key
                                        into group3
                                        from g3 in group3
                                        select new OrganInfo
                    {
                        OrganID           = organ.OrganID,
                        OrganCode         = organ.OrganCode,
                        OrganFullName     = organ.OrganFullName,
                        OrganTypeID       = organ.OrganTypeID,
                        OrganTypeName     = g1.OrganTypeName,
                        OrganCategoryID   = g2.CategoryID,
                        OrganCategoryName = g2.CategoryName,
                        OfficerQuanlity   = g3.Count(),
                        AddDate           = organ.AddDate
                    };

                    ListSortDirection       sortOrder = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending;
                    PropertySortCondition[] sortList  = new PropertySortCondition[]
                    {
                        new PropertySortCondition(parameter.Sort, sortOrder),
                        new PropertySortCondition("UserID", sortOrder),
                    };

                    organListLinq = organListLinq.OrderBy(sortList);

                    int count = organQuerable.Count();
                    if (parameter.Page > -1)
                    {
                        organListLinq = organListLinq
                                        .Skip((parameter.Page - 1) * parameter.PageSize)
                                        .Take(parameter.PageSize);
                    }

                    result.OrganInfoList.AddRange(organListLinq.ToList());
                    result.Total    = count;
                    response.Result = result;

                    return(response);
                }
            }
            catch (Exception e)
            {
                response.IsSuccessful = false;
                response.Reason       = e.Message;
                return(response);
            }
        }