< Summary

Information
Class: MyNet.Observable.Behaviors.Metadata.MetadataApplicators
Assembly: MyNet.Observable
File(s): https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.Observable/Behaviors/Metadata/MetadataApplicators.cs
Tag: 323_28699572109
Line coverage
100%
Covered lines: 5
Uncovered lines: 0
Coverable lines: 5
Total lines: 49
Line coverage: 100%
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
ApplyIgnoreModificationTracking(...)100%11100%
ApplyUpdateOnCultureChanged(...)100%11100%
ApplyUpdateOnTimeZoneChanged(...)100%11100%
ApplyAlsoValidate(...)100%11100%
ApplyForwardProperty(...)100%11100%

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.Observable/Behaviors/Metadata/MetadataApplicators.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="MetadataApplicators.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using MyNet.Metadata;
 8using MyNet.Observable.Behaviors.Metadata.Features;
 9using MyNet.Observable.Behaviors.Metadata.Features.Events;
 10
 11namespace MyNet.Observable.Behaviors.Metadata;
 12
 13/// <summary>
 14/// Applies observable metadata features to <see cref="PropertyMetadata"/> instances.
 15/// Used by the metadata source generator and by fluent configuration extensions.
 16/// </summary>
 17public static class MetadataApplicators
 18{
 19    /// <summary>
 20    /// Configures the property to ignore modification tracking.
 21    /// </summary>
 22    public static void ApplyIgnoreModificationTracking(PropertyMetadata metadata)
 1523        => metadata.SetFeature(new ModificationTrackingFeature { Ignore = true });
 24
 25    /// <summary>
 26    /// Configures the property to refresh when the application culture changes.
 27    /// </summary>
 28    public static void ApplyUpdateOnCultureChanged(PropertyMetadata metadata)
 3629        => metadata.GetOrCreate<EventReactionFeature>().Events.Add(typeof(CultureChangedEvent));
 30
 31    /// <summary>
 32    /// Configures the property to refresh when the application time zone changes.
 33    /// </summary>
 34    public static void ApplyUpdateOnTimeZoneChanged(PropertyMetadata metadata)
 935        => metadata.GetOrCreate<EventReactionFeature>().Events.Add(typeof(TimeZoneChangedEvent));
 36
 37    /// <summary>
 38    /// Adds a validation dependency on another property.
 39    /// </summary>
 40    public static void ApplyAlsoValidate(PropertyMetadata metadata, string dependentPropertyName)
 941        => metadata.GetOrCreate<ValidationDependencyFeature>().Dependents.Add(dependentPropertyName);
 42
 43    /// <summary>
 44    /// Configures property-changed forwarding from a wrapper property to the owner.
 45    /// </summary>
 46    public static void ApplyForwardProperty(PropertyMetadata metadata, bool concatenatePropertyName = true)
 3347        => metadata.SetFeature(new PropertyChangedForwardingFeature { ConcatenatePropertyName = concatenatePropertyName 
 48}
 49