Table of Contents

DateTimeExtensions Class

Definition

Namespace
Cuemon.Extensions.Data.Integrity
Assemblies
Cuemon.Extensions.Data.Integrity.dll
Source
src/Cuemon.Extensions.Data.Integrity/DateTimeExtensions.cs

Extension methods for the DateTime struct.

public static class DateTimeExtensions
Inheritance
DateTimeExtensions

Examples

The following example demonstrates generating a from timestamp values using the GetCacheValidator and GetCacheValidator extension methods.

using System;
using Cuemon.Data.Integrity;
using Cuemon.Extensions.Data.Integrity;
using Cuemon.Security;

namespace MyApp.Examples;

public class DateTimeExtensionsExample
{
    public static void Main()
    {
        // Define timestamps for when data was created and last modified
        DateTime created = new DateTime(2025, 1, 15, 10, 0, 0, DateTimeKind.Utc);
        DateTime modified = new DateTime(2025, 6, 10, 14, 30, 0, DateTimeKind.Utc);

        // Basic timestamp-only validator (weak integrity based on timestamps)
        CacheValidator timestampValidator = created.GetCacheValidator(modified);
        Console.WriteLine($"Created (UTC): {timestampValidator.Created:O}");
        Console.WriteLine($"Modified (UTC): {timestampValidator.Modified:O}");
        Console.WriteLine($"Checksum (hex): {timestampValidator.Checksum.ToHexadecimalString()}");

        // Create a validator using the Timestamp method
        // (checksum is derived purely from timestamps)
        CacheValidator timeBasedValidator = created.GetCacheValidator(modified,
            hashFactory: () => HashFactory.CreateFnv128(),
            method: EntityDataIntegrityMethod.Timestamp);
        Console.WriteLine($"Time-based method checksum: {timeBasedValidator.Checksum.ToHexadecimalString()}");

        // Create a validator with both timestamps and a content checksum
        byte[] contentChecksum = HashFactory.CreateFnv128().ComputeHash("content-data").GetBytes();
        CacheValidator strongValidator = created.GetCacheValidator(modified, contentChecksum,
            validation: EntityDataIntegrityValidation.Strong);
        Console.WriteLine($"Strong validator checksum: {strongValidator.Checksum.ToHexadecimalString()}");
        Console.WriteLine($"Validation level: {strongValidator.Validation}");

        // Create a validator with only the created timestamp (no modified date)
        CacheValidator createdOnly = created.GetCacheValidator();
        Console.WriteLine($"Created-only checksum: {createdOnly.Checksum.ToHexadecimalString()}");

}
}

Methods

Name Description
GetCacheValidator(DateTime, DateTime, byte[], EntityDataIntegrityValidation, Func<Hash>, EntityDataIntegrityMethod)

Returns a CacheValidator from the specified parameters.

GetCacheValidator(DateTime, DateTime?, Func<Hash>, EntityDataIntegrityMethod)

Returns a CacheValidator from the specified parameters.