private Dictionary <string, object> ParamsToKeyValue(GoodsInfoCategoryParam param) { Dictionary <string, object> paramCollection = new Dictionary <string, object>(); if (param.CategoryItemid > 0) { paramCollection.Add("CategoryItemid", param.CategoryItemid); } if (param.Brandsid > 0) { paramCollection.Add("Brandsid", param.Brandsid); } if (param.Charaid > 0) { paramCollection.Add("Charaid", param.Charaid); } if (param.Max > 0) { paramCollection.Add("Max", param.Max); } if (param.Min > 0) { paramCollection.Add("Min", param.Min); } return(paramCollection); }
public async Task <JsonResult> Get(int id, int?page, int pagesize = 10, string sort = "default") { var from = RequestHelper.GetQueryParams(Request); GoodsInfoCategoryParam param = new GoodsInfoCategoryParam(); param.CategoryItemid = id; param.PageIndex = page ?? 1; param.PageSize = pagesize; param.Sort = SexyColor.CommonComponents.Utility.StringConvertToEnum <GoodsInfoCategoryAPISortBy>(sort); var brandResult = 0; if (int.TryParse(from["brand"], out brandResult)) { param.Brandsid = brandResult; } var charaResult = 0; if (int.TryParse(from["chara"], out charaResult)) { param.Charaid = charaResult; } var maxResult = 0; if (int.TryParse(from["max"], out maxResult)) { param.Max = maxResult; } var minResult = 0; if (int.TryParse(from["min"], out minResult)) { param.Min = minResult; } var goods = await categoryMiddleware.GetCategoryByParams(param); return(Json(goods)); }
public async Task <GoodsInfoCategoryListDto> GetCategoryByParams(GoodsInfoCategoryParam param = null) { if (param == null) { return(null); } GoodsInfoCategoryListDto dto = new GoodsInfoCategoryListDto(); ScreeningDto screenDto = new ScreeningDto(); screenDto.price_grade = new List <GradeDto>(); List <int> ids = new List <int>(); await Task.Run(() => { IEnumerable <CategoryItemInBrands> inBrands = goodsCategoryService.GetCategoryItemInBrandsByCategoryItemId(param.CategoryItemid); foreach (var inBrandItem in inBrands) { ids.Add(inBrandItem.BrandsId); } var brands = goodsCategoryService.GetCategoryItemBrandsIds(ids); ids.Clear(); Mapper.Initialize(c => c.CreateMap <CategoryItemBrands, BrandDto>() .ForMember(dest => dest.brand_id, opt => opt.MapFrom(src => src.BrandsId)) .ForMember(dest => dest.brand_name, opt => opt.MapFrom(src => src.BrandsName)) ); screenDto.brands = Mapper.Map <IEnumerable <CategoryItemBrands>, List <BrandDto> >(brands); }); await Task.Run(() => { IEnumerable <CategoryItemInChara> inCharas = goodsCategoryService.GetCategoryItemInCharaByCategoryItemId(param.CategoryItemid); foreach (var inCharaItem in inCharas) { ids.Add(inCharaItem.CharaId); } var charas = goodsCategoryService.GetCategoryItemCharaIds(ids); ids.Clear(); Mapper.Initialize(c => c.CreateMap <CategoryItemChara, CharaDto>() .ForMember(dest => dest.chara, opt => opt.MapFrom(src => src.CharaId)) .ForMember(dest => dest.name, opt => opt.MapFrom(src => src.CharaName)) ); screenDto.characteristic = Mapper.Map <IEnumerable <CategoryItemChara>, List <CharaDto> >(charas); }); await Task.Run(() => { PagingDataSet <GoodsInfo> pageing = goodsInfoService.GetPageGoodsInfoAPI(ParamsToKeyValue(param), ParamsSortValue(param.Sort), param.PageIndex, param.PageSize); dto.page_total = pageing.PageCount; dto.c_total = (int)pageing.TotalRecords; dto.c_page_next = param.PageIndex + 1; var pageings = pageing.ToList(); Mapper.Initialize(c => c.CreateMap <GoodsInfo, GoodsInfoCategoryDto>() .ForMember(dest => dest.is_vedio, opt => opt.MapFrom(src => false)) .ForMember(dest => dest.goods_id, opt => opt.MapFrom(src => src.Goodsid)) .ForMember(dest => dest.goods_name, opt => opt.MapFrom(src => src.GoodsName)) .ForMember(dest => dest.app_price, opt => opt.MapFrom(src => src.GoodsRealPrice)) .ForMember(dest => dest.comment_num, opt => opt.MapFrom(src => src.CommenCount)) .ForMember(dest => dest.img_url, opt => opt.MapFrom(src => src.ImageUrl)) .ForMember(dest => dest.is_free_shipping, opt => opt.MapFrom(src => true)) .ForMember(dest => dest.is_new, opt => opt.MapFrom(src => false)) .ForMember(dest => dest.is_promote, opt => opt.MapFrom(src => false)) .ForMember(dest => dest.sold_num, opt => opt.MapFrom(src => src.BuyCount)) .ForMember(dest => dest.is_hot, opt => opt.MapFrom(src => src.IsHot)) ); dto.goods_list = Mapper.Map <List <GoodsInfo>, List <GoodsInfoCategoryDto> >(pageings); }); dto.screening = screenDto; return(dto); }