Class AffectedEntries
Used for handling redemption calculations on entry promotions.
Inheritance
Implements
Inherited Members
Namespace: EPiServer.Commerce.Marketing
Assembly: EPiServer.Business.Commerce.dll
Version: 12.17.2Syntax
public class AffectedEntries : IAffectedObject
Remarks
An example of typical usage of this class:
You have a "Buy 3 pay for 2" type of discount. The AffectedEntries would be filled with a quantity of three (corresponding to the "Buy 3" part), and you would call SetDiscountRange with parameters 2, 1 to indicate that the discount would be applied to the last item (skip 2 and apply to the final single quantity).
Note that setting a discount range and iterating over that range might mean that the configuration of the underlying list might change, since individual price entries might be split to support the requests. There is even support for having fractional quantities.
Constructors
AffectedEntries(AffectedEntries)
Initializes a new instance of a AffectedEntries that is a copy of original
.
Declaration
public AffectedEntries(AffectedEntries original)
Parameters
Type | Name | Description |
---|---|---|
AffectedEntries | original | The instance to copy. |
AffectedEntries(IList<PriceEntry>)
Initializes a new instance of a AffectedEntries.
Declaration
public AffectedEntries(IList<PriceEntry> priceEntries)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IList<PriceEntry> | priceEntries | The price entries. |
Properties
BatchId
Identifier to track this specific instance.
Declaration
public Guid BatchId { get; }
Property Value
Type | Description |
---|---|
System.Guid |
PriceEntries
Gets the price entries
Declaration
public IEnumerable<PriceEntry> PriceEntries { get; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<PriceEntry> |
Quantity
The total quantity of entries in this instance.
Declaration
public decimal Quantity { get; }
Property Value
Type | Description |
---|---|
System.Decimal |
Methods
DiscountRange()
Gets the subset range of this instance based on values set in SetDiscountRange(Decimal, Decimal)
Declaration
public IEnumerable<PriceEntry> DiscountRange()
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<PriceEntry> | An System.Collections.Generic.IEnumerable<T> that can be used to iterate over the contained PriceEntries. |
ForEachCode<T>(Func<PriceEntry, T, T>)
Enumerates over all entries in the current discount range and performs calculation per entry code.
Declaration
public IDictionary<string, T> ForEachCode<T>(Func<PriceEntry, T, T> calculation)
Parameters
Type | Name | Description |
---|---|---|
System.Func<PriceEntry, T, T> | calculation | The actual calculation to perform. Takes a PriceEntry and an accumulator and returns the accumulator together with the new value. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IDictionary<System.String, T> | A Dictionary that contains the code as key and the final result of the calculation as value. |
Type Parameters
Name | Description |
---|---|
T | The resulting type of the calculation, usually decimal if summing up values. |
Remarks
Note that the iteration is done over the current discount range, which is usually the only interesting part. If you need to iterate over the entire range of entries, reset by calling SetDiscountRange(0, 0).
SavedAmountPerCode()
Gets information about the saved amount per code.
Declaration
public IDictionary<string, decimal> SavedAmountPerCode()
Returns
Type | Description |
---|---|
System.Collections.Generic.IDictionary<System.String, System.Decimal> | A Dictionary that contains the code as key and the saved amount as value. |
Remarks
Note that the iteration is done over the current discount range.
SetDiscountRange(Decimal, Decimal)
Set the range on this instance that will have actual discounting applied to it.
Declaration
public AffectedEntries SetDiscountRange(decimal skip, decimal quantity)
Parameters
Type | Name | Description |
---|---|---|
System.Decimal | skip | The amount of quantity to skip from the beginning of the list. |
System.Decimal | quantity | The quantity to actually use when applying discounts. |
Returns
Type | Description |
---|---|
AffectedEntries | This instance. |
Remarks
You can reset the discount range by calling this method with both parameters set to 0.
ShallowCopy()
Creates a shallow copy of the instance.
Declaration
protected AffectedEntries ShallowCopy()
Returns
Type | Description |
---|---|
AffectedEntries |
Explicit Interface Implementations
IAffectedObject.SavedAmount
The saved amount.
Declaration
decimal IAffectedObject.SavedAmount { get; set; }
Returns
Type | Description |
---|---|
System.Decimal |