public void Place(UserBidDto userBidDto) { //validation should come here var userBid = new UserBid(userBidDto.BidId, userBidDto.UserId, userBidDto.SuggestedPrice); _userBidRepository.Add(userBid); }
public void PlaceBids(int lotteryId, IEnumerable <CoworkerBid> bids) { var lottery = this._context.Lotteries.Include(x => x.UserBids).First(x => x.Id == lotteryId); if (lottery.IsFinished) { throw new LotteryIsFinishedException(); } foreach (var bid in bids) { var coworker = new Coworker { Id = bid.CoworkerId }; this._context.Coworkers.Attach(coworker).State = EntityState.Unchanged; var user = this._currentUserAccessor.GetCurrentUser(); var existingBid = lottery.UserBids.FirstOrDefault(x => x.CoworkerId == bid.CoworkerId && x.UserId == user.Id); if (existingBid == null) { var userBid = new UserBid() { LotteryId = lotteryId, Lottery = lottery, Bid = bid.BidAmmount, CoworkerId = bid.CoworkerId, Coworker = coworker, User = user }; lottery.UserBids.Add(userBid); } else { existingBid.Bid = bid.BidAmmount; } } this._context.SaveChanges(); }
public async Task <Unit> Handle(SetMaxBidCommand request, CancellationToken cancellationToken) { var userBid = await _userBidService.GetByIdAsync(request.UserId); if (userBid == null) { userBid = new UserBid(); userBid.UserId = request.UserId; userBid.MaxAmount = request.Amount; _dbContext.UserBids.Add(userBid); } else { userBid.MaxAmount = request.Amount; } await _dbContext.SaveChangesAsync(cancellationToken); return(Unit.Value); }
private void UpdateUser(AuctionRaised ev, IClientSessionHandle session) { var userBid = new UserBid() { AuctionId = ev.Bid.AuctionId.ToString(), DateCreated = ev.Bid.DateCreated, Price = ev.Bid.Price, BidId = ev.Bid.BidId.ToString() }; var userFilter = Builders <UserRead> .Filter.Eq(f => f.UserIdentity.UserId, ev.Bid.UserIdentity.UserId.ToString()); var userUpdate = Builders <UserRead> .Update.Push(f => f.UserBids, userBid); var result = _dbContext.UsersReadModel.UpdateOne(session, userFilter, userUpdate); if (result.MatchedCount == 0) { throw new QueryException($"Cannot find user with id: {ev.Bid.UserIdentity.UserId.ToString()}"); } }