Beispiel #1
0
 public ConcurrentPickupAddressModifier(IContainer c, string label)
 {
     _label      = label;
     _container  = c;
     _session    = c.GetInstance <ISession>();
     _repository = c.GetInstance <IReverseAuctionRepository>();
     _di         = c.GetInstance <IDependencies>();
     _aggregate  = null;
 }
            /// <summary>EXPOSED FOR UNIT TESTING ONLY</summary>
            internal void ThrowIfPickupTimeRangeHasChanged(
                ReverseAuctionAggregate auction,
                Repr.Waypoint newPickup)
            {
                var current   = auction.BuyerTerms.Pickup.Time;
                var requested = Convert.ToTimeRange(newPickup.Earliest, newPickup.Latest);

                if (current != requested)
                {
                    throw new ArgumentException("cannot change pickup time");
                }
            }
Beispiel #3
0
            private Repr.ReverseAuction ToRepresentation(ReverseAuctionAggregate auction)
            {
                auction.MustNotBeNull(nameof(auction));

                return(new Repr.ReverseAuction
                {
                    Uri = _uriScheme.ToUri(auction).ToString(),
                    BiddingStart = auction.BiddingAllowed.Start.ToIso8601(),
                    BiddingEnd = auction.BiddingAllowed.End.ToIso8601(),
                    Bids = Repr.PaginatedSequence <Repr.Bid> .Empty,
                    Pickup = Convert.ToRepr(auction.BuyerTerms.Pickup),
                    Dropoff = Convert.ToRepr(auction.BuyerTerms.Dropoff),
                    OtherTerms = auction.BuyerTerms.OtherTerms,
                });
            }
Beispiel #4
0
 public void LoadExistingReverseAuction(int id)
 {
     _aggregate = _repository.Get(id);
 }
Beispiel #5
0
 public int Save(ReverseAuctionAggregate agg)
 {
     _aggregate = agg;
     _repository.Save(_aggregate);
     return(_aggregate.Id);
 }
 public Uri ToUri(ReverseAuctionAggregate reverseAuction)
 {
     return(new Uri($"http://example.com/ReverseAuction/{reverseAuction.Id}"));
 }
Beispiel #7
0
 public ReverseAuctionAggregate Update(ReverseAuctionAggregate ra)
 {
     this.session.Update(ra.Root);
     return(ra);
 }
 public Uri ToUri(ReverseAuctionAggregate reverseAuction)
 {
     // TODO: Test this.  It's tough to debug because of the anonymous object.
     return(new Uri(_urlHelper.Link("ReverseAuction", new { reverseAuction.Id })));
 }
Beispiel #9
0
 internal BuyerTermsChanged(ReverseAuctionAggregate x) : base(x)
 {
 }
Beispiel #10
0
 internal ReverseAuctionCreated(ReverseAuctionAggregate x) : base(x)
 {
 }
Beispiel #11
0
 /// <summary>
 /// DomainEvents have <c>internal</c> constructors because they should
 /// only be constructed within the Domain project.  Nothing outside
 /// the Domain should ever publish or create one.
 /// </summary>
 internal ReverseAuctionEvent(ReverseAuctionAggregate created)
 {
     Precondition.MustNotBeNull(created, nameof(created));
     Id = created.Id;
 }