Esempio n. 1
0
 /// <summary>
 /// Assigns cargo to a provided route.
 /// </summary>
 /// <param name="itinerary">New itinerary</param>
 public virtual void AssignToRoute(Itinerary itinerary)
 {
    if (itinerary == null)
    {
       throw new ArgumentNullException("itinerary");
    }
    CargoHasBeenAssignedToRouteEvent @event = new CargoHasBeenAssignedToRouteEvent(this, Itinerary);
    Itinerary = itinerary;
    Delivery = Delivery.UpdateOnRouting(RouteSpecification, Itinerary);
    DomainEvents.Raise(@event);
 }
Esempio n. 2
0
        /// <summary>
        /// Assigns cargo to a provided route.
        /// Attach a new itinerary to this cargo.
        /// </summary>
        /// <param name="itinerary">New itinerary</param>
        public virtual void AssignToRoute(Itinerary itinerary)
        {
            if (itinerary == null)
                throw new ArgumentNullException("itinerary", "Itinerary is required for assignment");

            CargoHasBeenAssignedToRouteEvent @event = new CargoHasBeenAssignedToRouteEvent(this, Itinerary);
            Itinerary = itinerary;
            // Handling consistency within the Cargo aggregate synchronously
            Delivery = Delivery.UpdateOnRouting(RouteSpecification, Itinerary);
            DomainEvents.Raise(@event);
        }
Esempio n. 3
0
        /// <summary>
        /// Assigns cargo to a provided route.
        /// </summary>
        /// <param name="itinerary">New itinerary</param>
        public void AssignToRoute(Itinerary itinerary)
        {
            if (itinerary == null)
            {
                throw new ArgumentNullException("itinerary");
            }

            var @event = new CargoHasBeenAssignedToRouteEvent(this, Itinerary);
            Itinerary  = itinerary;
            Delivery   = Delivery.UpdateOnRouting(RouteSpecification, Itinerary);

            m_eventAggegator.Publish<CargoHasBeenAssignedToRouteEvent>(@event);
        }