/// <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; } }