示例#1
0
        public Auction FindBy(Guid Id)
        {
            AuctionDTO auctionDTO;

            using (var connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["AuctionDB"].ConnectionString))
            {
                auctionDTO = connection.Query <AuctionDTO>("Select * From Auctions Where Id = CAST(@Id AS uniqueidentifier)", new { Id = Id }).FirstOrDefault();
            }

            var auctionSnapshot = new AuctionSnapshot();

            auctionSnapshot.Id            = auctionDTO.Id;
            auctionSnapshot.EndsAt        = auctionDTO.AuctionEnds;
            auctionSnapshot.StartingPrice = auctionDTO.StartingPrice;
            auctionSnapshot.Version       = auctionDTO.Version;

            if (auctionDTO.BidderMemberId.HasValue)
            {
                var bidSnapshot = new WinningBidSnapshot();

                bidSnapshot.AuctionId         = auctionDTO.Id;
                bidSnapshot.BiddersMaximumBid = auctionDTO.MaximumBid.Value;
                bidSnapshot.CurrentPrice      = auctionDTO.CurrentPrice.Value;
                bidSnapshot.BiddersId         = auctionDTO.BidderMemberId.Value;
                bidSnapshot.TimeOfBid         = auctionDTO.TimeOfBid.Value;
                auctionSnapshot.WinningBid    = bidSnapshot;
            }

            return(Auction.CreateFrom(auctionSnapshot));
        }
        public void Map(AuctionDTO auctionDTO, AuctionSnapshot snapshot)
        {
            auctionDTO.Id            = snapshot.Id;
            auctionDTO.StartingPrice = snapshot.StartingPrice;
            auctionDTO.AuctionEnds   = snapshot.EndsAt;
            auctionDTO.Version       = snapshot.Version;

            if (snapshot.WinningBid != null)
            {
                auctionDTO.BidderMemberId = snapshot.WinningBid.BiddersId;
                auctionDTO.CurrentPrice   = snapshot.WinningBid.CurrentPrice;
                auctionDTO.MaximumBid     = snapshot.WinningBid.BiddersMaximumBid;
                auctionDTO.TimeOfBid      = snapshot.WinningBid.TimeOfBid;
            }
        }
        public AuctionStatus ConvertToStatus(AuctionSnapshot snapshot)
        {
            var status = new AuctionStatus();

            status.AuctionEnds   = snapshot.EndsAt;
            status.Id            = snapshot.Id;
            status.TimeRemaining = TimeRemaining(snapshot.EndsAt);

            if (snapshot.WinningBid != null)
            {
                status.NumberOfBids    = _bidHistory.NoOfBidsFor(snapshot.Id);
                status.WinningBidderId = snapshot.WinningBid.BiddersId;
                status.CurrentPrice    = snapshot.WinningBid.CurrentPrice;
            }

            return(status);
        }
        public Auction FindBy(Guid Id)
        {
            var auctionDTO      = _auctionExampleContext.Auctions.Find(Id);
            var auctionSnapshot = new AuctionSnapshot();

            auctionSnapshot.Id            = auctionDTO.Id;
            auctionSnapshot.EndsAt        = auctionDTO.AuctionEnds;
            auctionSnapshot.StartingPrice = auctionDTO.StartingPrice;
            auctionSnapshot.Version       = auctionDTO.Version;

            if (auctionDTO.BidderMemberId.HasValue)
            {
                var bidSnapshot = new WinningBidSnapshot();

                bidSnapshot.BiddersMaximumBid = auctionDTO.MaximumBid.Value;
                bidSnapshot.CurrentPrice      = auctionDTO.CurrentPrice.Value;
                bidSnapshot.BiddersId         = auctionDTO.BidderMemberId.Value;
                bidSnapshot.TimeOfBid         = auctionDTO.TimeOfBid.Value;
                auctionSnapshot.WinningBid    = bidSnapshot;
            }

            return(Auction.CreateFrom(auctionSnapshot));
        }