public void ApproveQuantity(int quantity, IProvideCurrentIdentityRoles approver)
 {
     if (quantity == this.RequestedQuantity)
     {
         if (orderType != OrderType.Draft)
         {
             Guard.That(approver.CanApproveQuantity());
         }
     }
     else
     {
         if (orderType == OrderType.Submitted)
         {
             Guard.That(approver.CanOverruleQuantityOnSubmittedOrder());
         }
         else if (orderType == OrderType.Final)
         {
             if (quantity > this.ApprovedQuantity)
             {
                 Guard.That(approver.CanIncreaseQuantityOnFinalOrder());
             }
             else
             {
                 Guard.That(approver.CanDecreaseQuantityOnFinalOrder());
             }
         }
     }
     this.ApprovedQuantity = quantity;
 }
 public void RequestQuantity(int quantity, IProvideCurrentIdentityRoles requester)
 {
     Guard.That(requester.CanRequestQuantity());
     this.RequestedQuantity = quantity;
 }