< Summary - ZhEaIsNsAaBn.Libraries coverage (affected: 23 packages)

Information
Class: Microsoft.EntityFrameworkCore.EfValueConverterExtensions
Assembly: ZhEaIsNsAaBn.Infrastructure.Core
File(s): /home/runner/work/ZhEaIsNsAaBn.Libraries.V1/ZhEaIsNsAaBn.Libraries.V1/src/DataBasePackages/ZhEaIsNsAaBn.Infrastructure.Core/Extensions/EfValueConverterExtensions.cs
Line coverage
62%
Covered lines: 5
Uncovered lines: 3
Coverable lines: 8
Total lines: 59
Line coverage: 62.5%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AsHijriDate(...)100%11100%
AsHijriDateOnly(...)100%210%
AsHijriDateTime(...)100%11100%
AsNullableHijriDate(...)100%210%
AsNullableHijriDateOnly(...)100%210%
AsNullableHijriDateTime(...)100%11100%
Configure(...)100%11100%

File(s)

/home/runner/work/ZhEaIsNsAaBn.Libraries.V1/ZhEaIsNsAaBn.Libraries.V1/src/DataBasePackages/ZhEaIsNsAaBn.Infrastructure.Core/Extensions/EfValueConverterExtensions.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore.Metadata.Builders;
 2using ZhEaIsNsAaBn.Infrastructure.Core;
 3
 4// ReSharper disable once CheckNamespace
 5namespace Microsoft.EntityFrameworkCore;
 6
 7/// <summary>Property-builder shortcuts that store a <see cref="HijriDate"/> as Hijri text, with a column of the matchin
 8public static class EfValueConverterExtensions
 9{
 10    /// <summary>Required Hijri date column: <c>yyyy-MM-dd</c> as Unicode text of 10 (<see cref="HijriDateOnlyConverter"
 11    /// <typeparam name="TProperty">The property type.</typeparam>
 12    /// <param name="propertyBuilder">The property builder.</param>
 13    /// <returns>The same builder.</returns>
 14    public static PropertyBuilder<TProperty> AsHijriDate< TProperty >( this PropertyBuilder<TProperty> propertyBuilder )
 4015        => Configure<TProperty, HijriDateOnlyConverter>( propertyBuilder, required: true, HijriText.DateLength );
 16
 17    /// <summary>Same as <see cref="AsHijriDate{TProperty}"/>.</summary>
 18    /// <typeparam name="TProperty">The property type.</typeparam>
 19    /// <param name="propertyBuilder">The property builder.</param>
 20    /// <returns>The same builder.</returns>
 021    public static PropertyBuilder<TProperty> AsHijriDateOnly< TProperty >( this PropertyBuilder<TProperty> propertyBuild
 22
 23    /// <summary>Required Hijri date-and-time column: 24-hour <c>yyyy-MM-dd HH:mm:ss</c> as Unicode text of 19 (<see cre
 24    /// <typeparam name="TProperty">The property type.</typeparam>
 25    /// <param name="propertyBuilder">The property builder.</param>
 26    /// <returns>The same builder.</returns>
 27    public static PropertyBuilder<TProperty> AsHijriDateTime< TProperty >( this PropertyBuilder<TProperty> propertyBuild
 2428        => Configure<TProperty, HijriDateConverter>( propertyBuilder, required: true, HijriText.DateTimeLength );
 29
 30    /// <summary>Optional Hijri date column: <c>yyyy-MM-dd</c> as Unicode text of 10 (<see cref="NullableHijriDateOnlyCo
 31    /// <typeparam name="TProperty">The property type.</typeparam>
 32    /// <param name="propertyBuilder">The property builder.</param>
 33    /// <returns>The same builder.</returns>
 34    public static PropertyBuilder<TProperty> AsNullableHijriDate< TProperty >( this PropertyBuilder<TProperty> propertyB
 035        => Configure<TProperty, NullableHijriDateOnlyConverter>( propertyBuilder, required: false, HijriText.DateLength 
 36
 37    /// <summary>Same as <see cref="AsNullableHijriDate{TProperty}"/>.</summary>
 38    /// <typeparam name="TProperty">The property type.</typeparam>
 39    /// <param name="propertyBuilder">The property builder.</param>
 40    /// <returns>The same builder.</returns>
 041    public static PropertyBuilder<TProperty> AsNullableHijriDateOnly< TProperty >( this PropertyBuilder<TProperty> prope
 42
 43    /// <summary>Optional Hijri date-and-time column: 24-hour <c>yyyy-MM-dd HH:mm:ss</c> as Unicode text of 19 (<see cre
 44    /// <typeparam name="TProperty">The property type.</typeparam>
 45    /// <param name="propertyBuilder">The property builder.</param>
 46    /// <returns>The same builder.</returns>
 47    public static PropertyBuilder<TProperty> AsNullableHijriDateTime< TProperty >( this PropertyBuilder<TProperty> prope
 4048        => Configure<TProperty, NullableHijriDateConverter>( propertyBuilder, required: false, HijriText.DateTimeLength 
 49
 50
 51    private static PropertyBuilder<TProperty> Configure< TProperty, TConverter >( PropertyBuilder<TProperty> propertyBui
 52        where TConverter : ValueConverter
 53    {
 10454        ArgumentNullException.ThrowIfNull( propertyBuilder );
 55
 56        // Unicode text of the given length; the provider picks the column type.
 10457        return propertyBuilder.IsRequired( required ).HasMaxLength( length ).IsUnicode().HasConversion<TConverter>();
 58    }
 59}