Ejemplo n.º 1
0
 /// <summary>
 /// Converts an instance of <see cref="PSOrderLineItem" /> to an instance of <see cref="OrderLineItem" />.
 /// </summary>
 /// <param name="orderLineItem">An instance the <see cref="PSOrderLineItem" /> class that represents purcharse data for an offer.</param>
 /// <returns>An instance of the <see cref="OrderLineItem" /> that represents purchase data for an offer.</returns>
 public static OrderLineItem ToOrderLineItem(this PSOrderLineItem orderLineItem) => new OrderLineItem
 {
     FriendlyName         = orderLineItem.FriendlyName,
     LineItemNumber       = orderLineItem.LineItemNumber,
     OfferId              = orderLineItem.OfferId,
     ParentSubscriptionId = orderLineItem.ParentSubscriptionId,
     PartnerIdOnRecord    = orderLineItem.PartnerIdOnRecord,
     ProvisioningContext  = orderLineItem.ProvisioningContext,
     Quantity             = orderLineItem.Quantity,
     SubscriptionId       = orderLineItem.SubscriptionId
 };
 /// <summary>
 /// Converts an instance of <see cref="PSOrderLineItem" /> to an instance of <see cref="OrderLineItem" />.
 /// </summary>
 /// <param name="orderLineItem">An instance the <see cref="PSOrderLineItem" /> class that represents purcharse data for an offer.</param>
 /// <returns>An instance of the <see cref="OrderLineItem" /> that represents purchase data for an offer.</returns>
 public static OrderLineItem ToOrderLineItem(this PSOrderLineItem orderLineItem) => new OrderLineItem
 {
     FriendlyName         = orderLineItem.FriendlyName,
     LineItemNumber       = orderLineItem.LineItemNumber,
     OfferId              = orderLineItem.OfferId,
     ParentSubscriptionId = orderLineItem.ParentSubscriptionId,
     PartnerIdOnRecord    = orderLineItem.PartnerIdOnRecord,
     ProvisioningContext  = orderLineItem.ProvisioningContext?.Cast <DictionaryEntry>().ToDictionary(entry => (string)entry.Key, kvp => (string)kvp.Value),
     Quantity             = orderLineItem.Quantity,
     SubscriptionId       = orderLineItem.SubscriptionId
 };
        /// <summary>
        /// Copies the values from an instance of <see cref="PSOrderLineItem" />.
        /// </summary>
        /// <param name="orderLineItem">An instance of the <see cref="PSOrderLineItem"/> class.</param>
        /// <param name="other">The base order line item whose properties should be copied.</param>
        public static void CopyFrom(this PSOrderLineItem orderLineItem, OrderLineItem other)
        {
            if (orderLineItem != null && other != null)
            {
                CloneProperties(orderLineItem, other);

                if (other.ProvisioningContext != null)
                {
                    foreach (KeyValuePair <string, string> item in other.ProvisioningContext)
                    {
                        orderLineItem.ProvisioningContext.Add(item.Key, item.Value);
                    }
                }
            }
        }
        /// <summary>
        /// Executes the operations associated with the cmdlet.
        /// </summary>
        public override void ExecuteCmdlet()
        {
            PSOrderLineItem orderLineItem;

            try
            {
                if (!ShouldProcess(Resources.NewPartnerCustomerOrderLineItemWhatIf))
                {
                    return;
                }

                orderLineItem = new PSOrderLineItem
                {
                    FriendlyName         = FriendlyName,
                    LineItemNumber       = LineItemNumber,
                    OfferId              = OfferId,
                    ParentSubscriptionId = ParentSubscriptionId,
                    PartnerIdOnRecord    = PartnerIdOnRecord,
                    Quantity             = Quantity,
                    SubscriptionId       = SubscriptionId
                };

                if (ProvisioningContext != null)
                {
                    foreach (KeyValuePair <object, object> value in ProvisioningContext.Cast <DictionaryEntry>()
                             .ToDictionary(d => d.Key, d => d.Value))
                    {
                        orderLineItem.ProvisioningContext.Add(value.Key.ToString(), value.Value.ToString());
                    }
                }

                WriteObject(orderLineItem);
            }
            finally
            {
                orderLineItem = null;
            }
        }