コード例 #1
0
        public async Task <ActionResult <SlotLatestBidResponse> > LatestBid([FromQuery] SlotLatestBidRequest request,
                                                                            CancellationToken cancellationToken)
        {
            var bidsSpecification = new BidSpecification(request.SlotId, true);
            var highestBid        = await _bidRepository.LastOfDefaultAsync(bidsSpecification, cancellationToken);

            var response = new SlotLatestBidResponse(request.CorrelationId());

            response.Bid = Mapper.Map <Bid, BidDto>(highestBid);

            return(Ok(response));
        }
コード例 #2
0
        public async Task <ActionResult <GetBidsBySlotIdResponse> > Get([FromQuery] GetBidsBySlotIdRequest request,
                                                                        CancellationToken cancellationToken)
        {
            var bidsSpecification = new BidSpecification(request.SlotId);
            var bids = await _bidRepository.ListAsync(bidsSpecification, cancellationToken);

            var response     = new GetBidsBySlotIdResponse(request.CorrelationId());
            var responseBids = bids.Select(Mapper.Map <BidDto>).ToList();

            response.Bids         = responseBids;
            response.ItemsFetched = responseBids.Count;

            return(Ok(response));
        }
コード例 #3
0
        public async Task <ActionResult <CreateBidResponse> > Post([FromForm] CreateBidRequest request,
                                                                   CancellationToken cancellationToken)
        {
            var bid = new Bid(request.TraderId, request.SlotId, request.Amount, request.Date);
            // append layer in infrastructure for bidding (generate idea)
            await _bidRepository.AddAsync(bid, cancellationToken);

            var bidsSpecification = new BidSpecification(request.SlotId);
            var bids = await _bidRepository.ListAsync(bidsSpecification, cancellationToken);

            var response = new CreateBidResponse(request.CorrelationId());

            response.Bids = bids.Select(Mapper.Map <BidDto>).ToList();

            return(Ok(response));
        }