public static TimeUnit?InferEstimationPeriod(this CatalogueItemType itemType, ProvisioningType provisioningType, TimeUnit?estimationPeriod) { return(itemType switch { CatalogueItemType.AssociatedService => provisioningType == ProvisioningType.OnDemand ? provisioningType.InferEstimationPeriod(estimationPeriod) : null, _ => provisioningType.InferEstimationPeriod(estimationPeriod), });
public OrderItem( string odsCode, string catalogueItemId, CatalogueItemType catalogueItemType, string catalogueItemName, ProvisioningType provisioningType, CataloguePriceType cataloguePriceType, CataloguePriceUnit cataloguePriceUnit, TimeUnit priceTimeUnit, string currencyCode, int quantity, TimeUnit estimationPeriod, DateTime?deliveryDate, decimal?price) : this() { if (string.IsNullOrWhiteSpace(catalogueItemId)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(catalogueItemId)); } if (string.IsNullOrWhiteSpace(currencyCode)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(currencyCode)); } if (string.IsNullOrWhiteSpace(catalogueItemName)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(catalogueItemName)); } OdsCode = odsCode; CatalogueItemId = catalogueItemId; CatalogueItemType = catalogueItemType ?? throw new ArgumentNullException(nameof(catalogueItemType)); CatalogueItemName = catalogueItemName; ProvisioningType = provisioningType ?? throw new ArgumentNullException(nameof(provisioningType)); CataloguePriceType = cataloguePriceType ?? throw new ArgumentNullException(nameof(cataloguePriceType)); CataloguePriceUnit = cataloguePriceUnit ?? throw new ArgumentNullException(nameof(cataloguePriceUnit)); PriceTimeUnit = priceTimeUnit; CurrencyCode = currencyCode; Quantity = quantity; EstimationPeriod = estimationPeriod; DeliveryDate = deliveryDate; Price = price; }
public static string DisplayName(this CatalogueItemType itemType) => itemType.AsString(EnumFormat.DisplayName);