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); } }
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()); } }
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)); }