public async Task <GoodsCarSearchResult> GetModelListAsync(long?userId, bool?isSelected, string keyword, DateTime?startTime, DateTime?endTime, int pageIndex, int pageSize)
        {
            using (MyDbContext dbc = new MyDbContext())
            {
                GoodsCarSearchResult result = new GoodsCarSearchResult();
                var entities = dbc.GetAll <GoodsCarEntity>().Include(g => g.Goods).AsNoTracking();
                if (userId != null)
                {
                    entities = entities.Where(g => g.UserId == userId);
                }
                if (isSelected != null)
                {
                    entities = entities.Where(g => g.IsSelected == isSelected);
                }
                if (!string.IsNullOrEmpty(keyword))
                {
                    entities = entities.Where(g => g.Goods.Code.Contains(keyword) || g.Goods.Name.Contains(keyword) || g.Goods.Description.Contains(keyword));
                }
                if (startTime != null)
                {
                    entities = entities.Where(a => a.CreateTime >= startTime);
                }
                if (endTime != null)
                {
                    entities = entities.Where(a => SqlFunctions.DateDiff("day", endTime, a.CreateTime) <= 0);
                }
                result.PageCount = (int)Math.Ceiling((await entities.LongCountAsync()) * 1.0f / pageSize);
                var goodsAreaResult = await entities.OrderByDescending(a => a.CreateTime).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToListAsync();

                var imgUrls = dbc.GetAll <GoodsImgEntity>().AsNoTracking().Select(g => new { g.GoodsId, g.ImgUrl });
                result.GoodsCars   = goodsAreaResult.Select(a => ToDTO(a, imgUrls.Where(g => g.GoodsId == a.GoodsId).Select(g => g.ImgUrl).FirstOrDefault())).ToArray();
                result.TotalAmount = result.GoodsCars.Where(g => g.IsSelected == true).Sum(g => g.GoodsAmount);
                return(result);
            }
        }
Exemple #2
0
        public async Task <ApiResult> SelectList()
        {
            string parm = doMain;
            User   user = JwtHelper.JwtDecrypt <User>(ControllerContext);
            GoodsCarSearchResult result = await goodsCarService.GetModelListAsync(user.Id, true, null, null, null, 1, 100);

            GoodsCarListApiModel model = new GoodsCarListApiModel();

            model.goodsCars = result.GoodsCars.Select(g => new GoodsCarModel {
                id = g.Id, inventory = g.Inventory, price = g.Price, goodsId = g.GoodsId, goodsName = g.Name, realityPrice = g.RealityPrice, number = g.Number, goodsAmount = g.GoodsAmount, imgUrl = parm + g.ImgUrl, isSelected = g.IsSelected
            }).ToList();
            model.totalAmount = result.TotalAmount;
            return(new ApiResult {
                status = 1, data = model
            });
        }
Exemple #3
0
        static void Main3(string[] args)
        {
            using (MyDbContext dbc = new MyDbContext())
            {
                dbc.Database.Log = (sql) =>
                {
                    Console.WriteLine(sql);
                };

                GoodsCarSearchResult result = new GoodsCarSearchResult();
                var entities = dbc.GetAll <GoodsCarEntity>().AsNoTracking();

                result.PageCount = (int)Math.Ceiling((entities.LongCount()) * 1.0f / 5);
                var goodsAreaResult = entities.Include(g => g.Goods).OrderByDescending(a => a.CreateTime).Skip((1 - 1) * 5).Take(5).ToList();
                var imgUrls         = dbc.GetAll <GoodsImgEntity>().AsNoTracking().Select(g => new { g.GoodsId, g.ImgUrl });
                result.GoodsCars   = goodsAreaResult.Select(a => ToDTO(a, imgUrls.Where(g => g.GoodsId == a.GoodsId).Select(g => g.ImgUrl).FirstOrDefault())).ToArray();
                result.TotalAmount = result.GoodsCars.Where(g => g.IsSelected == true).Sum(g => g.GoodsAmount);
                Console.WriteLine();
            }
            Console.ReadKey();
        }