Class CaseValueExtensions
CaseValue extension methods
Inherited Members
Namespace: PayrollEngine.Client.Scripting
Assembly: PayrollEngine.Client.Scripting.dll
Syntax
public static class CaseValueExtensions
Methods
CaseValueWithin(IEnumerable<CaseValue>, DateTime)
Get first matching period containing the test date
Declaration
public static CaseValue CaseValueWithin(this IEnumerable<CaseValue> periodValues, DateTime date)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<CaseValue> | periodValues | |
| DateTime | date | The date of the case value |
Returns
| Type | Description |
|---|---|
| CaseValue | Accumulated total duration |
GroupByValue(IEnumerable<CaseValue>)
Get case period values grouped by value
Declaration
public static IEnumerable<IGrouping<PayrollValue, CaseValue>> GroupByValue(this IEnumerable<CaseValue> periodValues)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<CaseValue> | periodValues |
Returns
| Type | Description |
|---|---|
| IEnumerable<IGrouping<PayrollValue, CaseValue>> | Case period values grouped by value |
Intersections(IEnumerable<CaseValue>, DatePeriod)
Get all intersections of a date period with any date period
Declaration
public static List<CaseValue> Intersections(this IEnumerable<CaseValue> periodValues, DatePeriod intersectPeriod)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<CaseValue> | periodValues | |
| DatePeriod | intersectPeriod | The period to intersect |
Returns
| Type | Description |
|---|---|
| List<CaseValue> | List of intersecting date periods |
Period(CaseValue)
Extract date periods
Declaration
public static DatePeriod Period(this CaseValue caseValue)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue |
Returns
| Type | Description |
|---|---|
| DatePeriod | Accumulated total duration |
Periods(IEnumerable<CaseValue>)
Extract date periods
Declaration
public static IEnumerable<DatePeriod> Periods(this IEnumerable<CaseValue> periodValues)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<CaseValue> | periodValues |
Returns
| Type | Description |
|---|---|
| IEnumerable<DatePeriod> | Accumulated total duration |
ToDateTime(CaseValue)
Convert case value to date time/>
Declaration
public static DateTime ToDateTime(this CaseValue caseValue)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue |
Returns
| Type | Description |
|---|---|
| DateTime |
ToDecimal(CaseValue)
Convert case value to decimal/>
Declaration
public static decimal ToDecimal(this CaseValue caseValue)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue |
Returns
| Type | Description |
|---|---|
| decimal |
ToDecimal(CaseValue, DecimalRounding)
Convert case value to decimal
Declaration
public static decimal ToDecimal(this CaseValue caseValue, DecimalRounding rounding)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue | |
| DecimalRounding | rounding | The rounding type |
Returns
| Type | Description |
|---|---|
| decimal |
ToInt(CaseValue)
Convert case value to int/>
Declaration
public static int ToInt(this CaseValue caseValue)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue |
Returns
| Type | Description |
|---|---|
| int |
ToNullableDateTime(CaseValue)
Convert case value to nullable date time/>
Declaration
public static DateTime? ToNullableDateTime(this CaseValue caseValue)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue |
Returns
| Type | Description |
|---|---|
| DateTime? |
ToNullableDecimal(CaseValue)
Convert case value to nullable decimal/>
Declaration
public static decimal? ToNullableDecimal(this CaseValue caseValue)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue |
Returns
| Type | Description |
|---|---|
| decimal? |
ToNullableDecimal(CaseValue, DecimalRounding)
Convert case value to nullable decimal/>
Declaration
public static decimal? ToNullableDecimal(this CaseValue caseValue, DecimalRounding rounding)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue | |
| DecimalRounding | rounding | The rounding type |
Returns
| Type | Description |
|---|---|
| decimal? |
ToNullableInt(CaseValue)
Convert case value to nullable int/>
Declaration
public static int? ToNullableInt(this CaseValue caseValue)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue |
Returns
| Type | Description |
|---|---|
| int? |
ToString(CaseValue)
Convert case value to string/>
Declaration
public static string ToString(this CaseValue caseValue)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue |
Returns
| Type | Description |
|---|---|
| string |
TotalDuration(IEnumerable<CaseValue>)
Total duration of all time periods
Declaration
public static TimeSpan TotalDuration(this IEnumerable<CaseValue> periodValues)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<CaseValue> | periodValues |
Returns
| Type | Description |
|---|---|
| TimeSpan | Accumulated total duration |
ValueAs(CaseValue, Type)
Convert the case value to custom type
Declaration
public static object ValueAs(this CaseValue caseValue, Type type)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue | |
| Type | type | Target type |
Returns
| Type | Description |
|---|---|
| object | Accumulated total duration |
ValueAs<T>(CaseValue, T)
Convert the case value to custom type
Declaration
public static T ValueAs<T>(this CaseValue caseValue, T defaultValue = default)
Parameters
| Type | Name | Description |
|---|---|---|
| CaseValue | caseValue | |
| T | defaultValue | The default value |
Returns
| Type | Description |
|---|---|
| T | Accumulated total duration |
Type Parameters
| Name | Description |
|---|---|
| T |
WhereEnd(IEnumerable<CaseValue>, params DayOfWeek[])
Get date periods with end on specific weekdays
Declaration
public static IEnumerable<CaseValue> WhereEnd(this IEnumerable<CaseValue> periodValues, params DayOfWeek[] weekdays)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<CaseValue> | periodValues | |
| DayOfWeek[] | weekdays | The week days |
Returns
| Type | Description |
|---|---|
| IEnumerable<CaseValue> | List of intersecting date periods |
WhereEndNot(IEnumerable<CaseValue>, params DayOfWeek[])
Get date periods with end is not on specific weekdays
Declaration
public static IEnumerable<CaseValue> WhereEndNot(this IEnumerable<CaseValue> periodValues, params DayOfWeek[] weekdays)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<CaseValue> | periodValues | |
| DayOfWeek[] | weekdays | The week days |
Returns
| Type | Description |
|---|---|
| IEnumerable<CaseValue> | List of intersecting date periods |
WherePeriod(IEnumerable<CaseValue>, Func<DatePeriod, bool>)
Get case period values matching a period predicate
Declaration
public static IEnumerable<CaseValue> WherePeriod(this IEnumerable<CaseValue> periodValues, Func<DatePeriod, bool> predicate)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<CaseValue> | periodValues | |
| Func<DatePeriod, bool> | predicate | The predicate. |
Returns
| Type | Description |
|---|---|
| IEnumerable<CaseValue> | List of case period value matching the predicate |
WhereStart(IEnumerable<CaseValue>, params DayOfWeek[])
Get date periods with start on specific weekdays
Declaration
public static IEnumerable<CaseValue> WhereStart(this IEnumerable<CaseValue> periodValues, params DayOfWeek[] weekdays)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<CaseValue> | periodValues | |
| DayOfWeek[] | weekdays | The week days |
Returns
| Type | Description |
|---|---|
| IEnumerable<CaseValue> | List of intersecting date periods |
WhereStartNot(IEnumerable<CaseValue>, params DayOfWeek[])
Get date periods with start is not on specific weekdays
Declaration
public static IEnumerable<CaseValue> WhereStartNot(this IEnumerable<CaseValue> periodValues, params DayOfWeek[] weekdays)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<CaseValue> | periodValues | |
| DayOfWeek[] | weekdays | The week days |
Returns
| Type | Description |
|---|---|
| IEnumerable<CaseValue> | List of intersecting date periods |