Class MiscExtensions
A set of miscellaneous extension and helper methods
Inherited Members
Namespace: LemonEdge.Utils
Assembly: LemonEdge.Utils.dll
Syntax
public static class MiscExtensions
Methods
AddIgnoringNulls<T>(IList<T>, T)
Adds the item to the list as long as it is not null
Declaration
public static void AddIgnoringNulls<T>(this IList<T> items, T item)
Parameters
| Type | Name | Description |
|---|---|---|
| IList<T> | items | The list of items to add a single item to |
| T | item | The item to add to the list as long as it is not null |
Type Parameters
| Name | Description |
|---|---|
| T | The type of items in the list |
AddOrUpdate<K, T>(IDictionary<K, T>, K, Func<Task<T>>, Func<K, T, T>)
Adds the specified item to the dictionary, or if it already exists in the dictionary provides a mechanism to update it
Declaration
public static Task<T> AddOrUpdate<K, T>(this IDictionary<K, T> items, K key, Func<Task<T>> getNewValue, Func<K, T, T> onUpdate)
Parameters
| Type | Name | Description |
|---|---|---|
| IDictionary<K, T> | items | The dictionary of items |
| K | key | The key to add to the dictionary |
| Func<Task<T>> | getNewValue | A function that runs a task to get the new value if the key does not already exist in the dictionary |
| Func<K, T, T> | onUpdate | If the key exists a this function is called to update the existing value for that key. |
Returns
| Type | Description |
|---|---|
| Task<T> | The item that was added, or updated, to the dictionary |
Type Parameters
| Name | Description |
|---|---|
| K | The type of the key of the dictionary |
| T | The type of the value of the dictionary |
AddOrUpdate<K, T>(IDictionary<K, T>, K, T, Func<K, T, T>)
Adds the specified item to the dictionary, or if it already exists in the dictionary provides a mechanism to update it
Declaration
public static T AddOrUpdate<K, T>(this IDictionary<K, T> items, K key, T newValue, Func<K, T, T> onUpdate)
Parameters
| Type | Name | Description |
|---|---|---|
| IDictionary<K, T> | items | The dictionary of items |
| K | key | The key to add to the dictionary |
| T | newValue | The new value to add to the dictionary if the key does not already exist |
| Func<K, T, T> | onUpdate | If the key exists a this function is called to update the existing value for that key. |
Returns
| Type | Description |
|---|---|
| T | The item that was added, or updated, to the dictionary |
Type Parameters
| Name | Description |
|---|---|
| K | The type of the key of the dictionary |
| T | The type of the value of the dictionary |
AnyItems(IEnumerable)
Returns true if the non generic list of items has any items contained in it
Declaration
public static bool AnyItems(this IEnumerable items)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable | items | A list of items to check to see if it containts 1 or more items |
Returns
| Type | Description |
|---|---|
| bool | True if the list of |
AreFormulaValuesEqual(object, object)
Returns true if the specified values are equal to each other. Allows for a tolerance for equal due to formulas accuracy. So dates need only match to the minute and decimals to the 7th decimal place.
Declaration
public static bool AreFormulaValuesEqual(object x, object y)
Parameters
| Type | Name | Description |
|---|---|---|
| object | x | The first item to compare |
| object | y | The second item to compare |
Returns
| Type | Description |
|---|---|
| bool | True if the specified values are equal to each other. Allows for a tolerance for equal due to formulas accuracy. So dates need only match to the minute and decimals to the 7th decimal place. |
CapTo(decimal[], decimal[])
Given an array of decimals, this makes sure the don't exceed an array of decimals holding a cap.
If a decimal does the system lowers that decimal to the cap and adds it elsewhere in the array where there is excess room to the cap
Declaration
public static decimal[] CapTo(this decimal[] toCap, decimal[] cap)
Parameters
| Type | Name | Description |
|---|---|---|
| decimal[] | toCap | The set of decimals that should be modified to make sure they all fall within the specified caps |
| decimal[] | cap | The set of decimals providing a cap for each associated original decimal |
Returns
| Type | Description |
|---|---|
| decimal[] | A new set of decimals where each one conforms to the cap where possible |
Remarks
For example
var items = new decimal[] { 1, 2, 3, 4, 5 };
var caps = new decimal[] { 1, 1, 3, 5, 5 };
var results = items.CapTo(caps);
Would result in
1, 1, 3, 5, 5
ClearToDateTimteWithNoOffset(DateTimeOffset)
Clears the time and offset component of a date time
Declaration
public static DateTimeOffset ClearToDateTimteWithNoOffset(this DateTimeOffset dt)
Parameters
| Type | Name | Description |
|---|---|---|
| DateTimeOffset | dt | The datetime offset to have its time and offset values cleared |
Returns
| Type | Description |
|---|---|
| DateTimeOffset | A new datetimeoffset without any time or offset values |
CombineHashCode(int, int)
Combines two hashcodes in an efficient form
Declaration
public static int CombineHashCode(this int hashCode1, int hashCode2)
Parameters
| Type | Name | Description |
|---|---|---|
| int | hashCode1 | The first hashcode to combine |
| int | hashCode2 | The second hashcode to combine |
Returns
| Type | Description |
|---|---|
| int | A unique hashcode formed from the two hashcodes |
Remarks
See stackoverflow.com/questions/18065251/concise-way-to-combine-field-hashcodes
CountItems(IEnumerable)
Counts all the items in the non generic collection
Declaration
public static int CountItems(this IEnumerable items)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable | items | The collection of items to count |
Returns
| Type | Description |
|---|---|
| int | The number of items in the collection |
DelayWhileFalse(Func<bool>, int, int)
Runs a func until it returns true, at the given delay, for the provided amount of times.
Declaration
public static Task<bool> DelayWhileFalse(this Func<bool> task, int delayMilliseconds, int maxRepeats)
Parameters
| Type | Name | Description |
|---|---|---|
| Func<bool> | task | |
| int | delayMilliseconds | The delay, in ms |
| int | maxRepeats | The number of times to run it |
Returns
| Type | Description |
|---|---|
| Task<bool> |
EqualToTheSecond(DateTimeOffset, DateTimeOffset)
returns true if the specified date times are equal to each other to wthin a second
Declaration
public static bool EqualToTheSecond(this DateTimeOffset x, DateTimeOffset other)
Parameters
| Type | Name | Description |
|---|---|---|
| DateTimeOffset | x | The first date time to compare |
| DateTimeOffset | other | The second date time to compare |
Returns
| Type | Description |
|---|---|
| bool | True if both date times are equal to each other to within a second |
GetDuplicatesFromKeys<T, TKey>(IEnumerable<T>, Func<T, TKey>)
Declaration
public static List<T> GetDuplicatesFromKeys<T, TKey>(this IEnumerable<T> items, Func<T, TKey> keySelector) where TKey : IComparable<TKey>
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<T> | items | |
| Func<T, TKey> | keySelector |
Returns
| Type | Description |
|---|---|
| List<T> |
Type Parameters
| Name | Description |
|---|---|
| T | |
| TKey |
GetElapsedAndRestart(Stopwatch)
Restarts the stopwatch, after grabbing the Elapsed.
Declaration
public static TimeSpan GetElapsedAndRestart(this Stopwatch stopwatch)
Parameters
| Type | Name | Description |
|---|---|---|
| Stopwatch | stopwatch |
Returns
| Type | Description |
|---|---|
| TimeSpan |
GetIndex(IEnumerable, object)
Returns the index a specified item exists within a non generic list of items
Declaration
public static int GetIndex(this IEnumerable items, object itemToFind)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable | items | The list of items to return the index of a mtachin item from |
| object | itemToFind | The matching item to find the index it belonds in the specified list |
Returns
| Type | Description |
|---|---|
| int | The index the |
GetIndex<T>(IEnumerable<T>, Func<T, bool>)
Retutns the index that the specified match function first matches an item in the list
Declaration
public static int GetIndex<T>(this IEnumerable<T> items, Func<T, bool> match)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<T> | items | A set of items to enumerate through to find the first index of a specified matching item |
| Func<T, bool> | match | A function that returns true when the specified item is found |
Returns
| Type | Description |
|---|---|
| int | The index a specified matching item exists within a collection at. Returns -1 if not found. |
Type Parameters
| Name | Description |
|---|---|
| T | The type of item to match against |
GetResult<T>(Task, Type)
Awaits the specified task (that is an unknown Task of T), and returns the result cast to type
T
Declaration
public static Task<T> GetResult<T>(this Task task, Type typeOfTaskResult)
Parameters
| Type | Name | Description |
|---|---|---|
| Task | task | |
| Type | typeOfTaskResult | The actual type of the result for the task |
Returns
| Type | Description |
|---|---|
| Task<T> | The result cast to type |
Type Parameters
| Name | Description |
|---|---|
| T | The type to cast the result to, not necessarily the actual type of the result |
GetService<T>(ValidationContext)
Extension for ValidationContext. Calls GetService(Type) with a generic type.
Declaration
public static T GetService<T>(this ValidationContext context)
Parameters
| Type | Name | Description |
|---|---|---|
| ValidationContext | context | The validation context. |
Returns
| Type | Description |
|---|---|
| T |
Type Parameters
| Name | Description |
|---|---|
| T | The type to get. |
GreaterThanOrEqualTo(IPAddress, IPAddress)
Returns true if the specified IPAddress is greater than or equal to the other IP Address
Declaration
public static bool GreaterThanOrEqualTo(this IPAddress x, IPAddress y)
Parameters
| Type | Name | Description |
|---|---|---|
| IPAddress | x | The IP Address to see if it is greater than or equal to |
| IPAddress | y | The IP Address to see if it is less than or equal to |
Returns
| Type | Description |
|---|---|
| bool | True if the specified IPAddress is greater than or equal to the other IP Address |
HasNonDefaultValue<T>(T?)
Indicates if the specified nullable value has a value that is not the default value of that type
Declaration
public static bool HasNonDefaultValue<T>(this T? item) where T : struct
Parameters
| Type | Name | Description |
|---|---|---|
| T? | item | The item to check to see if it holds a non default value for |
Returns
| Type | Description |
|---|---|
| bool | True if the nullable item holds a value that isn't the default value of the type |
Type Parameters
| Name | Description |
|---|---|
| T | The type of the Nullable<T> |
HasValueEqualTo<T>(T?, T)
Indicates if the specified nullable value has a value that is equal to the specified value
Declaration
public static bool HasValueEqualTo<T>(this T? item, T value) where T : struct
Parameters
| Type | Name | Description |
|---|---|---|
| T? | item | The item to check to see if it holds a value of |
| T | value | The value to see if the |
Returns
| Type | Description |
|---|---|
| bool | True if the nullable item holds the specified |
Type Parameters
| Name | Description |
|---|---|
| T | The type of the Nullable<T> |
IsInRange(IPAddress, IPAddress, IPAddress)
Returns true if the specified IPAddress is within the range of the start and
end IPAddresses
Declaration
public static bool IsInRange(this IPAddress searchValue, IPAddress start, IPAddress end)
Parameters
| Type | Name | Description |
|---|---|---|
| IPAddress | searchValue | The IPAddress to determine if it exists between 2 other IP Addresses |
| IPAddress | start | The start IP Address the |
| IPAddress | end | The end IP Address the |
Returns
| Type | Description |
|---|---|
| bool | True if the specified |
IsLastDayOfMonth(DateTime)
Returns true if the specified date is the last day of a month
Declaration
public static bool IsLastDayOfMonth(this DateTime dt)
Parameters
| Type | Name | Description |
|---|---|---|
| DateTime | dt | The date to evaluate if it occurs on the last day of a month or not |
Returns
| Type | Description |
|---|---|
| bool | True if the specified date is the last day of a month |
IsNullOrDefault<T>(T?)
Declaration
public static bool IsNullOrDefault<T>(this T? item) where T : struct
Parameters
| Type | Name | Description |
|---|---|---|
| T? | item |
Returns
| Type | Description |
|---|---|
| bool |
Type Parameters
| Name | Description |
|---|---|
| T |
ItemsAreEqual(IEnumerable, IEnumerable)
Returns true if both lists contain the same items in the same order
Declaration
public static bool ItemsAreEqual(this IEnumerable items, IEnumerable otherItems)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable | items | First list of items to compare |
| IEnumerable | otherItems | Second list of items to compare |
Returns
| Type | Description |
|---|---|
| bool | True if the item collections are the same size and contain the same items in each position |
LessThanOrEqualTo(IPAddress, IPAddress)
Returns true if the specified IPAddress is less than or equal to the other IP Address
Declaration
public static bool LessThanOrEqualTo(this IPAddress x, IPAddress y)
Parameters
| Type | Name | Description |
|---|---|---|
| IPAddress | x | The IP Address to see if it is less than or equal to |
| IPAddress | y | The IP Address to see if it is greater than or equal to |
Returns
| Type | Description |
|---|---|
| bool | True if the specified IPAddress is less than or equal to the other IP Address |
Matches<T>(T?, T?)
Declaration
public static bool Matches<T>(this T? item, T? value) where T : struct
Parameters
| Type | Name | Description |
|---|---|---|
| T? | item | |
| T? | value |
Returns
| Type | Description |
|---|---|
| bool |
Type Parameters
| Name | Description |
|---|---|
| T |
SetIfNotEqual<T, TP>(T, Expression<Func<T, TP>>, TP)
Allows you to set the value of a specific property only if it is not equal to the value you want to set it to. Returns false if it didn't set the property as it already holds the specified value
Declaration
public static bool SetIfNotEqual<T, TP>(this T value, Expression<Func<T, TP>> propName, TP propValue)
Parameters
| Type | Name | Description |
|---|---|---|
| T | value | The item you want to set the property against it to a certain value |
| Expression<Func<T, TP>> | propName | An expression that gives the property you want to set |
| TP | propValue | The value to call and set the property with only if it is currently not equal to that value |
Returns
| Type | Description |
|---|---|
| bool | True if the value was set or false otherwise (indicating it already has that value) |
Type Parameters
| Name | Description |
|---|---|
| T | The type of the item you are setting a property against |
| TP | The type of the property value to be set |
Remarks
For example:
public class MyItem
{
public int Val { get; set; }
}
public static void SetValue()
{
var myItem = new MyItem() { Val = 1 };
myItem.SetIfNotEqual(x => x.Val, 1);
myItem.SetIfNotEqual(x => x.Val, 2);
}
Will result in the myItem Val property not being set to the value 1 on the first call, then subsequently it will be set to the value 2 on the second.
This ensures you don't set property values when you don't want trigger notification changes or anything else
ToAsyncEnumerable<T>(IEnumerable<T>)
Returns an IAsyncEnumerable for a given IEnumerable in order to maintain consistent use with enumerations that implement both.
Declaration
public static IAsyncEnumerable<T> ToAsyncEnumerable<T>(this IEnumerable<T> enumerable)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<T> | enumerable | An enumerable collection of type |
Returns
| Type | Description |
|---|---|
| IAsyncEnumerable<T> | Returns an IAsyncEnumerable that enumerates the provided IEnumerable. |
Type Parameters
| Name | Description |
|---|---|
| T | The type of the items in the collection to enumerate |
ToByteArray(Stream)
Returns the entire contents of the specified stream as a byte array
Declaration
public static byte[]? ToByteArray(this Stream s)
Parameters
| Type | Name | Description |
|---|---|---|
| Stream | s | The stream to return the contents of |
Returns
| Type | Description |
|---|---|
| byte[] | The entire contents of the specified stream as a byte array |
ToCollectionDictionary<TKey, T>(IEnumerable<T>, Func<T, TKey>)
Converts a list of items into a dictionary of lists each grouped by a specified key
Declaration
public static Dictionary<TKey, List<T>> ToCollectionDictionary<TKey, T>(this IEnumerable<T> items, Func<T, TKey> keySelector)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<T> | items | The list of items to convert into a dictionary |
| Func<T, TKey> | keySelector | A function that given an item of type |
Returns
| Type | Description |
|---|---|
| Dictionary<TKey, List<T>> | A new dictionary holding a list of items for each dictionary key |
Type Parameters
| Name | Description |
|---|---|
| TKey | The type of the property that holds the key for the dictionary |
| T | The type of items being converted into a dictionary |
ToCollectionDictionary<TKey, T, TVAL>(IEnumerable<T>, Func<T, TKey>, Func<T, TVAL>)
Converts a list of items into a dictionary of lists each grouped by a specified key
Declaration
public static Dictionary<TKey, List<TVAL>> ToCollectionDictionary<TKey, T, TVAL>(this IEnumerable<T> items, Func<T, TKey> keySelector, Func<T, TVAL> valueSelector)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<T> | items | The list of items to convert into a dictionary |
| Func<T, TKey> | keySelector | A function that given an item of type |
| Func<T, TVAL> | valueSelector | A function that given an item of type T returns the value to use |
Returns
| Type | Description |
|---|---|
| Dictionary<TKey, List<TVAL>> | A new dictionary holding a list of items for each dictionary key |
Type Parameters
| Name | Description |
|---|---|
| TKey | The type of the property that holds the key for the dictionary |
| T | The type of items being converted into a dictionary |
| TVAL |
ToConcurrentCollectionDictionary<TKey, T>(IEnumerable<T>, Func<T, TKey>)
Converts a list of items into a concurrent dictionary of lists each grouped by a specified key
Declaration
public static ConcurrentDictionary<TKey, List<T>> ToConcurrentCollectionDictionary<TKey, T>(this IEnumerable<T> items, Func<T, TKey> keySelector)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<T> | items | The list of items to convert into a dictionary |
| Func<T, TKey> | keySelector | A function that given an item of type |
Returns
| Type | Description |
|---|---|
| ConcurrentDictionary<TKey, List<T>> | A new dictionary holding a list of items for each dictionary key |
Type Parameters
| Name | Description |
|---|---|
| TKey | The type of the property that holds the key for the dictionary |
| T | The type of items being converted into a dictionary |
ToDictionaryOfDictionary<TKey1, TKey2, T>(IEnumerable<T>, Func<T, TKey1>, Func<T, TKey2>)
Returns a dictionary of dictionaries from a given list of items
Declaration
public static Dictionary<TKey1, Dictionary<TKey2, T>> ToDictionaryOfDictionary<TKey1, TKey2, T>(this IEnumerable<T> items, Func<T, TKey1> key1Selector, Func<T, TKey2> key2Selector)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<T> | items | The collection of items to organize into dictionaries |
| Func<T, TKey1> | key1Selector | A function that given an item will return the key to group it by in the first dictionary |
| Func<T, TKey2> | key2Selector | A function that given an item will return the key to group it by in the second dictionary |
Returns
| Type | Description |
|---|---|
| Dictionary<TKey1, Dictionary<TKey2, T>> | A dictionary of dictionaries that has all the items organized within it |
Type Parameters
| Name | Description |
|---|---|
| TKey1 | The type of the key for the first dictionary |
| TKey2 | The type of the key for the second dictionary |
| T | The type of items being organized into dictionaries |
ToFullExceptionMessage(Exception?, bool)
Returns The message of an exception and all inner exception messages as well.
Optionally includes the stack
Declaration
public static string ToFullExceptionMessage(this Exception? ex, bool withStackTrace = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Exception | ex | The exception to return the message from |
| bool | withStackTrace | Indicates if the stack trace should be included with the message too |
Returns
| Type | Description |
|---|---|
| string | The message of the provided exception, and all recursive inner exceptions, along with the stack trace if included |
ToFullStackTrace(Exception)
Returns the stack trace component of an exception and all inner exceptions
Declaration
public static string ToFullStackTrace(this Exception ex)
Parameters
| Type | Name | Description |
|---|---|---|
| Exception | ex | The exception to display the stack trace of |
Returns
| Type | Description |
|---|---|
| string | The stack trace of an exception and all inner exceptions |
ToNewDateOrderedGuid(Guid)
Creates a new GUID with the last 8 bytes of the guid containing a date component ensuring that guids are created in an order sorted by SQL Server
Declaration
public static Guid ToNewDateOrderedGuid(this Guid value)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | value | Not required. Guid.Empty is fine. |
Returns
| Type | Description |
|---|---|
| Guid | A new GUID with the last 8 bytes of the guid containing a date component ensuring that guids are created in an order sorted by SQL Server |
Remarks
See https://netmatze.wordpress.com/2012/03/08/generate-sequencial-guid/
This is used to ensure GUIDs that are used in SQL Server as part of clustered indexes are always added at the end so data doesn't have to be moved
ToShortInternationalDate(DateTime)
Returns the specified value formatted in date international format
Declaration
public static string ToShortInternationalDate(this DateTime value)
Parameters
| Type | Name | Description |
|---|---|---|
| DateTime | value | The date time to be formatted |
Returns
| Type | Description |
|---|---|
| string | A formatted string of the date time in date international format |
See Also
ToShortInternationalDate(DateTimeOffset)
Returns the specified value formatted in date international format
Declaration
public static string ToShortInternationalDate(this DateTimeOffset value)
Parameters
| Type | Name | Description |
|---|---|---|
| DateTimeOffset | value | The date time offset to be formatted |
Returns
| Type | Description |
|---|---|
| string | A formatted string of the date time offset in date time friendly format for file names |
See Also
ToShortInternationalDateTime(DateTime)
Returns the specified value formatted in date international precise format
Declaration
public static string ToShortInternationalDateTime(this DateTime value)
Parameters
| Type | Name | Description |
|---|---|---|
| DateTime | value | The date time to be formatted |
Returns
| Type | Description |
|---|---|
| string | A formatted string of the date time in date international precise format |
See Also
ToShortInternationalDateTime(DateTimeOffset)
Returns the specified value formatted in date international precise format
Declaration
public static string ToShortInternationalDateTime(this DateTimeOffset value)
Parameters
| Type | Name | Description |
|---|---|---|
| DateTimeOffset | value | The date time offset to be formatted |
Returns
| Type | Description |
|---|---|
| string | A formatted string of the date time offset in date international precise format |
See Also
ToShortInternationalDateTimeFileNameFriendly(DateTime)
Returns the specified value formatted in date time friendly format for file names
Declaration
public static string ToShortInternationalDateTimeFileNameFriendly(this DateTime value)
Parameters
| Type | Name | Description |
|---|---|---|
| DateTime | value | The date time to be formatted |
Returns
| Type | Description |
|---|---|
| string | A formatted string of the date time in date time friendly format for file names |
See Also
ToShortInternationalDateTimeFileNameFriendly(DateTimeOffset)
Returns the specified value formatted in date time friendly format for file names
Declaration
public static string ToShortInternationalDateTimeFileNameFriendly(this DateTimeOffset value)
Parameters
| Type | Name | Description |
|---|---|---|
| DateTimeOffset | value | The date time offset to be formatted |
Returns
| Type | Description |
|---|---|
| string | A formatted string of the date time offset in date time friendly format for file names |
See Also
ToShortInternationalDateTimeNoSeconds(DateTime)
Returns the specified value formatted in date international with time and no seconds
Declaration
public static string ToShortInternationalDateTimeNoSeconds(this DateTime value)
Parameters
| Type | Name | Description |
|---|---|---|
| DateTime | value | The date time to be formatted |
Returns
| Type | Description |
|---|---|
| string | A formatted string of the date time in date international with time and no seconds |
See Also
ToSizedCollections<T>(IEnumerable<T>, int)
Given a collection, this splits it up into x collections of max size collectionMaxSize
Declaration
public static IEnumerable<List<T>> ToSizedCollections<T>(this IEnumerable<T> items, int collectionMaxSize)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<T> | items | The collection to split up into multiple collections each of max size
|
| int | collectionMaxSize | The max number of items that can be contained in any one collection the method returns |
Returns
| Type | Description |
|---|---|
| IEnumerable<List<T>> | A collection of collections each of max size |
Type Parameters
| Name | Description |
|---|---|
| T | The type of items in the collection |
ToUserFriendlyTimePeriodWithSeconds(TimeSpan)
Returns a user friendly description of a time spane
Declaration
public static string ToUserFriendlyTimePeriodWithSeconds(this TimeSpan period)
Parameters
| Type | Name | Description |
|---|---|---|
| TimeSpan | period | The time span to provide a user friendly description for |
Returns
| Type | Description |
|---|---|
| string | A suer friendly description of a given time span |
Remarks
For instance the following types of formats can be returned:
1 second
x hours y minutes z seconds
y minutes z seconds
z seconds
WithNoOffset(DateTimeOffset, bool)
Declaration
public static DateTimeOffset WithNoOffset(this DateTimeOffset dt, bool dateComponentOnly)
Parameters
| Type | Name | Description |
|---|---|---|
| DateTimeOffset | dt | |
| bool | dateComponentOnly |
Returns
| Type | Description |
|---|---|
| DateTimeOffset |