Esempio n. 1
0
        public async Task CallPrice(PlaceBidDto input)
        {
            long UserId = AbpSession.UserId.Value;
            User User   = await _userManager.FindByIdAsync(UserId.ToString());

            DateTime timeStamp   = DateTime.UtcNow;
            string   auctionName = $"auction-{input.AuctionId}";

            try
            {
                Domain.Auction.Auction newValue = await _auctionManager.MakeBid(input.AuctionId, input.Price, UserId, timeStamp);

                await Clients.Group(auctionName).SendAsync(AuctionHubEventNames.NewBidIsValid, new NewBidDto
                {
                    BidTime   = timeStamp,
                    Price     = input.Price,
                    Username  = User.UserName,
                    AuctionId = input.AuctionId
                });

                await Clients.User(UserId.ToString()).SendAsync(AuctionHubEventNames.BidSuccess);
            }
            catch (Exception e)
            {
                await Clients.User(UserId.ToString()).SendAsync(AuctionHubEventNames.BidFail, e.Message);
            }
        }
Esempio n. 2
0
        public ActionResult Place([FromBody] PlaceBidDto dto)
        {
            Console.WriteLine("Bid: " + JsonConvert.SerializeObject(dto));
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var bid      = Bid.Create(dto.Amount);
            var placeBid = PlaceBid.Create(bid);
            var command  = Command.Create(dto.Id, placeBid);
            var result   = _commandHandler.HandleCommand(command);

            switch (result)
            {
            case CommandResultSuccess _:
                return(Ok());

            default:
                return(Conflict());
            }
        }
Esempio n. 3
0
        public static async Task <HttpResponseMessage> PostBid(HttpClient client, PlaceBidDto dto)
        {
            var content = new StringContent(JsonConvert.SerializeObject(dto), Encoding.UTF8, "application/json");

            return(await client.PostAsync("/api/bid", content));
        }