private void Set(WinningBid newBid)
        {
            if (!FirstOffer() && CurrentWinningBid.WasMadeBy(newBid.Bidder))
            {
                DomainEvents.Raise(new OutBid(Id, CurrentWinningBid.Bidder));
            }

            CurrentWinningBid = newBid;
        }
        private Auction(AuctionSnapshot snapshot)
        {
            this.Id            = snapshot.Id;
            this.StartingPrice = new Money(snapshot.StartingPrice);
            this.EndsAt        = snapshot.EndsAt;
            this.Version       = snapshot.Version;

            if (snapshot.WinningBid != null)
            {
                CurrentWinningBid = WinningBid.CreateFrom(snapshot.WinningBid);
            }
        }