/// <summary>
        ///楼层显示分类分页查询
        /// </summary>
        /// <param name="model">输入查询参数对象</param>
        /// <returns></returns>
        /// <remarks>added by jimmy,2015-7-13</remarks>
        public ResultModel Select(SearchFloorCategoryModel model)
        {
            var floorCategory = _database.Db.FloorCategory;
            var categoryLang  = _database.Db.Category_Lang;
            var category      = _database.Db.Category;
            var whereParam    = new SimpleExpression(1, 1, SimpleExpressionType.Equal);

            if (model.ParentID != 0)
            {
                whereParam = new SimpleExpression(whereParam, floorCategory.CategoryId == model.ParentID || floorCategory.DCategoryId == model.ParentID, SimpleExpressionType.And);
            }
            dynamic c;
            dynamic cl;
            dynamic cl3;
            var     query = floorCategory.All().
                            Join(categoryLang.As("categoryLang1"), out cl).On(floorCategory.DCategoryId == cl.CategoryId && cl.LanguageID == model.LanguageID).
                            Join(categoryLang.As("categoryLang3"), out cl3).On(floorCategory.CategoryId == cl3.CategoryId && cl.LanguageID == model.LanguageID).
                            Join(category.As("c"), out c).On(floorCategory.CategoryId == c.CategoryId).
                            Where(cl.LanguageID == model.LanguageID).
                            Where(cl3.LanguageID == model.LanguageID).
                            Where(c.AuditState == true).
                            Select(floorCategory.FloorCategoryId, cl.CategoryName.As("CategoryNameFirst"), cl3.CategoryName.As("CategoryNameThree"), floorCategory.Place, floorCategory.AddUsers,
                                   floorCategory.AddTime).OrderByPlace().Where(whereParam);
            var result = new ResultModel
            {
                Data =
                    new SimpleDataPagedList <FloorCategoryModel>(query,
                                                                 model.PagedIndex, model.PagedSize)
            };

            return(result);
        }
        /// <summary>
        ///     查询楼层显示分类列表
        /// </summary>
        /// <param name="model">搜索实体对象</param>
        /// <returns></returns>
        /// <remarks>added by jimmy,2015-7-3</remarks>
        public JsonResult List(SearchFloorCategoryModel model)
        {
            model.PagedSize = model.PagedSize == 0 ? 10 : model.PagedSize;
            var paramList =
                _floorCategoryService.GetFloorCategoryList(new SearchFloorCategoryModel
            {
                PagedIndex = model.PagedIndex,
                PagedSize  = model.PagedSize,
                LanguageID = ACultureHelper.GetLanguageID,
            });
            var data = new { rows = paramList.Data, total = paramList.Data.TotalCount };

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        ///首页导航分页查询
        /// </summary>
        /// <param name="model">输入查询参数对象</param>
        /// <returns></returns>
        /// <remarks>added by jimmy,2015-7-15</remarks>
        public ResultModel GetFloorCategoryList(SearchFloorCategoryModel model)
        {
            var floorCategory = _database.Db.FloorCategory;
            var categoryLang  = _database.Db.Category_Lang;
            var whereParam    = new SimpleExpression(1, 1, SimpleExpressionType.Equal);

            if (model.ParentID != 0)
            {
                whereParam = new SimpleExpression(whereParam, floorCategory.CategoryId == model.ParentID || floorCategory.DCategoryId == model.ParentID, SimpleExpressionType.And);
            }

            dynamic cl;
            // var query = floorCategory.FindAll(floorCategory.DCategoryId == 0).OrderByPlace();

            var query = floorCategory.
                        Query().
                        LeftJoin(categoryLang, out cl).
                        On(floorCategory.CategoryId == cl.CategoryId).
                        Where(cl.LanguageID == model.LanguageID && floorCategory.DCategoryId == 0).
                        Select(
                floorCategory.FloorCategoryId,
                cl.CategoryName.As("navigationName"),
                floorCategory.Place,
                floorCategory.AddUsers,
                floorCategory.AddTime).
                        Where(whereParam).
                        OrderByPlace();
            var result = new ResultModel
            {
                Data =
                    new SimpleDataPagedList <FloorCategoryModel>(query,
                                                                 model.PagedIndex, model.PagedSize)
            };

            return(result);
        }