public async Task <PagedResultDto <GetCompletedOrdersOutputDto> > GetCompletedOrders(GetCompletedOrdersInputDto input) { var query = _completedRepository.GetAll().Where(o => o.BuyerId == AbpSession.UserId.Value || o.SellerId == AbpSession.UserId.Value); if (!input.Sorting.IsNullOrEmpty()) { query = query.OrderBy(input.Sorting); } var count = await query.CountAsync(); var list = await query.PageBy(input).Select(o => new GetCompletedOrdersOutputDto { Code = o.Code, BuyerId = o.BuyerId, SellerId = o.SellerId, AddressId = o.AddressId, DeliveryId = o.DeliveryId, OrderTime = o.OrderTime.ToString("yyyy-MM-dd HH:mm:ss"), Amount = o.Amount, ItemPriceAmount = o.ItemPriceAmount, ExpressCostAmount = o.ExpressCostAmount }).ToListAsync(); return(new PagedResultDto <GetCompletedOrdersOutputDto>(count, list)); }
public async Task <PagedResultDto <GetCompletedOrdersOutputDto> > GetCompletedOrdersAsSeller(GetCompletedOrdersInputDto input) { var query = _completedRepository.GetAll().Where(o => o.SellerId == AbpSession.UserId.Value).OrderByDescending(o => o.OrderTime); if (!input.Sorting.IsNullOrEmpty()) { query = query.OrderBy(input.Sorting); } var count = await query.CountAsync(); var list = await query.PageBy(input).Select(o => new { o.Id, o.Code, o.BuyerId, o.SellerId, o.AddressId, o.DeliveryId, o.OrderTime, o.Amount, o.ItemPriceAmount, o.ExpressCostAmount, o.ItemId }).ToListAsync(); var itemIdList = list.Select(o => o.ItemId).ToList(); var items = await _itemRepository.GetAll().Where(i => itemIdList.Contains(i.Id)).Select(i => new { ItemId = i.Id, ItemTitle = i.Title }).ToListAsync(); var pics = await _itemPicRepository.GetAll().Where(i => itemIdList.Contains(i.ItemId) && i.IsCover).Select(i => new { i.ItemId, //Url = new Uri(new Uri(new Uri(_appConfiguration["App:ImageUrlPrefix"]), i.Path), i.FileName + i.Extension).ToString() Url = _appConfiguration["App:ImageUrlPrefix"] + "/" + i.Path + "/" + i.FileName + i.Extension }).ToListAsync(); var newList = new List <GetCompletedOrdersOutputDto>(); foreach (var o in list) { newList.Add(new GetCompletedOrdersOutputDto { Id = o.Id, Code = o.Code, BuyerId = o.BuyerId, SellerId = o.SellerId, AddressId = o.AddressId, DeliveryId = o.DeliveryId, OrderTime = o.OrderTime.ToString("yyyy-MM-dd HH:mm:ss"), Amount = o.Amount, ItemPriceAmount = o.ItemPriceAmount, ExpressCostAmount = o.ExpressCostAmount, ItemTitle = items.FirstOrDefault(i => i.ItemId == o.ItemId)?.ItemTitle, ItemPicUrl = pics.FirstOrDefault(i => i.ItemId == o.ItemId)?.Url }); } return(new PagedResultDto <GetCompletedOrdersOutputDto>(count, newList)); }