Exemplo n.º 1
0
        public async Task <ICollection <Auction> > GetUserActiveAuctions(string userId)
        {
            var spec   = new AuctionPriceRaiseSpecification(userId);
            var raises = await _raiseRepository.ListAsync(spec);

            var activeAuctions = raises
                                 .DistinctBy(r => r.AuctionId)
                                 .Select(r => r.Auction)
                                 .Where(a => a.Status == AuctionStatus.Open)
                                 .ToList();

            return(activeAuctions);
        }
Exemplo n.º 2
0
        public async Task <ICollection <Auction> > GetUserOwnedAuctions(string userId)
        {
            var spec   = new AuctionPriceRaiseSpecification();
            var raises = await _raiseRepository.ListAsync(spec);

            var activeAuctions = raises
                                 .Where(r => r.Auction.Status == AuctionStatus.Closed)
                                 .GroupBy(r => r.AuctionId)
                                 .Where(g => g.OrderByDescending(r => r.Date).FirstOrDefault()?.RaisedUserId == userId)
                                 .SelectMany(g => g.Select(r => r.Auction))
                                 .DistinctBy(a => a.Id)
                                 .ToList();

            return(activeAuctions);
        }