Beispiel #1
0
        public static List <SearchItem> DoSearchAuction(SearchCriteria criteria)
        {
            if (criteria == null || Auction.Auction.Auctions == null || Auction.Auction.Auctions.Count == 0)
            {
                return(null);
            }

            List <SearchItem> list = new List <SearchItem>();

            SearchDetail first = null;

            for (var index = 0; index < criteria.Details.Count; index++)
            {
                var d = criteria.Details[index];

                if (d.Attribute is Misc misc && misc == Misc.ExcludeFel)
                {
                    first = d;
                    break;
                }
            }

            bool excludefel = first != null;

            for (var index = 0; index < Auction.Auction.Auctions.Count; index++)
            {
                Auction.Auction pv = Auction.Auction.Auctions[index];

                if (pv.AuctionItem != null && pv.AuctionItem.Map != Map.Internal && pv.AuctionItem.Map != null && pv.OnGoing && (!excludefel || pv.AuctionItem.Map != Map.Felucca))
                {
                    list.Add(new SearchItem(pv.Safe, pv.AuctionItem, (int)pv.Buyout, false));
                }
            }

            switch (criteria.SortBy)
            {
            case SortBy.LowToHigh: list = list.OrderBy(vi => vi.Price).ToList(); break;

            case SortBy.HighToLow: list = list.OrderBy(vi => - vi.Price).ToList(); break;
            }

            return(list);
        }
Beispiel #2
0
        public async Task Create(string ProductName, decimal SubTotal, long AuctionId, string serial)
        {
            Auction.Auction auction = await _auctionRepository
                                      .FirstOrDefaultAsync(s => s.Id == AuctionId);

            if (auction.HasMakeInvoice)
            {
                throw new UserFriendlyException("Hóa đơn đã được lập trước đó!");
            }

            Bid.Bid lastBid = _bidRepository.GetAll()
                              .Where(s => s.AuctionId == AuctionId)
                              .OrderByDescending(s => s.BidTime)
                              .FirstOrDefault();

            if (auction.EndDate > DateTime.UtcNow)
            {
                throw new UserFriendlyException("Phiên đấu giá chưa kết thúc");
            }

            auction.HasMakeInvoice = true;

            Invoice Invoice = new Invoice
            {
                AuctionId    = AuctionId,
                SubTotal     = SubTotal,
                BidId        = lastBid.Id,
                ProductName  = ProductName,
                SellerId     = auction.SellerId,
                UserId       = lastBid.UserId,
                SerialNumber = serial
            };

            await _auctionRepository.UpdateAsync(auction);

            await _invoiceRepository.InsertAsync(Invoice);
        }