Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }