/// <summary>
 /// ctor used by the extended notification class
 /// </summary>
 /// <param name="theItem"></param>
 public ShoppingCartItem(GCheckout.AutoGen.Item theItem)
 {
     if (theItem.digitalcontent != null)
     {
         this.DigitalContent = new DigitalItem(theItem.digitalcontent);
     }
     this.Description    = theItem.itemdescription;
     this.MerchantItemID = theItem.merchantitemid;
     if (theItem.merchantprivateitemdata != null)
     {
         this.MerchantPrivateItemDataNodes
             = theItem.merchantprivateitemdata.Any;
     }
     else
     {
         this.MerchantPrivateItemDataNodes = new XmlNode[] { }
     };
     this.Name         = theItem.itemname;
     this.Price        = theItem.unitprice.Value; //is checked for fractions
     this.Quantity     = theItem.quantity;
     _taxtableselector = theItem.taxtableselector;
     _notificationItem = theItem;
     if (theItem.subscription != null)
     {
         this.Subscription = new Subscription(theItem.subscription);
     }
 }
 /// <summary>
 /// ctor used by the extended notification class
 /// </summary>
 /// <param name="theItem"></param>
 public ShoppingCartItem(GCheckout.AutoGen.Item theItem)
 {
     if (theItem.digitalcontent != null)
     this.DigitalContent = new DigitalItem(theItem.digitalcontent);
       this.Description = theItem.itemdescription;
       this.MerchantItemID = theItem.merchantitemid;
       if (theItem.merchantprivateitemdata != null)
     this.MerchantPrivateItemDataNodes
       = theItem.merchantprivateitemdata.Any;
       else
     this.MerchantPrivateItemDataNodes = new XmlNode[] { };
       this.Name = theItem.itemname;
       this.Price = theItem.unitprice.Value; //is checked for fractions
       this.Quantity = theItem.quantity;
       _taxtableselector = theItem.taxtableselector;
       _notificationItem = theItem;
       if (theItem.subscription != null) {
     this.Subscription = new Subscription(theItem.subscription);
       }
 }