public void Extend(DateTime?newDateOfExpiration, decimal value)
        {
            var @event = new TimeAndMaterialJobOrderExtendedEvent(
                this.Id,
                newDateOfExpiration,
                value
                );

            RaiseEvent(@event);
        }
 public void Handle(TimeAndMaterialJobOrderExtendedEvent message)
 {
     using (var db = new AccountancyContext())
     {
         var jobOrder = db.JobOrders.OfType <TimeAndMaterialJobOrder>().Where(jo => jo.OriginalId == message.JobOrderId).Single();
         jobOrder.DateOfExpiration = message.NewDateOfExpiration;
         jobOrder.Value            = message.Value;
         db.SaveChanges();
     }
 }
        public void Extend(DateTime?newDateOfExpiration, decimal?value)
        {
            this.DateOfExpiration = newDateOfExpiration;
            this.Value            = value;

            var @event = new TimeAndMaterialJobOrderExtendedEvent(
                this.Id,
                this.DateOfExpiration,
                this.Value
                );

            RaiseEvent(@event);
        }
 public void Apply(TimeAndMaterialJobOrderExtendedEvent evt)
 {
     this.DateOfExpiration = evt.NewDateOfExpiration;
     this.Value            = new PositiveMoney(evt.Value, this.Value.Currency);
 }