< Summary

Information
Class: Nabs.ActivityFramework.UiManifest.ActivityStateUiManifest<T>
Assembly: Nabs.ActivityFramework
File(s): /home/runner/work/Nabs/Nabs/src/Nabs.ActivityFramework/UiManifest/ActivityStateUiManifest.cs
Tag: 90_14636759620
Line coverage
100%
Covered lines: 27
Uncovered lines: 0
Coverable lines: 27
Total lines: 71
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
.ctor()100%11100%
TitleFor(...)100%11100%
WithDescription(...)100%11100%
PropertyFor(...)100%11100%
WithSequence(...)100%11100%
WithLabel(...)100%11100%
WithPlaceholder(...)100%11100%
WithHelpText(...)100%11100%
WithValidationRule(...)100%11100%
Render()100%11100%

File(s)

/home/runner/work/Nabs/Nabs/src/Nabs.ActivityFramework/UiManifest/ActivityStateUiManifest.cs

#LineLine coverage
 1namespace Nabs.ActivityFramework.UiManifest;
 2
 3public abstract class ActivityStateUiManifest<T>
 4    : IActivityStateUiManifestTitle<T>, IActivityStateUiManifestProperty<T>
 5    where T : class, IActivityState
 6{
 17    private readonly UiManifestTitle _manifestTitle = new();
 18    private readonly Dictionary<string, UiManifestItem> _manifestItems = [];
 9    private UiManifestItem _currentManifestItem = default!;
 10
 11    protected IActivityStateUiManifestTitle<T> TitleFor(string title)
 12    {
 113        _manifestTitle.Title = title;
 114        return this;
 15    }
 16
 17    public IActivityStateUiManifestTitle<T> WithDescription(string description)
 18    {
 119        _manifestTitle.Description = description;
 120        return this;
 21    }
 22
 23    protected IActivityStateUiManifestProperty<T> PropertyFor<TProperty>(Expression<Func<T, TProperty>> expression)
 24    {
 125        var member = expression.Body as MemberExpression;
 126        var propertyName = member!.Member.Name;
 127        _currentManifestItem = new UiManifestItem();
 128        _manifestItems[propertyName] = _currentManifestItem;
 129        return this;
 30    }
 31
 32    public IActivityStateUiManifestProperty<T> WithSequence(int sequence)
 33    {
 134        _currentManifestItem.Sequence = sequence;
 135        return this;
 36    }
 37
 38    public IActivityStateUiManifestProperty<T> WithLabel(string label)
 39    {
 140        _currentManifestItem.Label = label;
 141        return this;
 42    }
 43
 44    public IActivityStateUiManifestProperty<T> WithPlaceholder(string placeholder)
 45    {
 146        _currentManifestItem.Placeholder = placeholder;
 147        return this;
 48    }
 49
 50    public IActivityStateUiManifestProperty<T> WithHelpText(string helpText)
 51    {
 152        _currentManifestItem.HelpText = helpText;
 153        return this;
 54    }
 55
 56    public IActivityStateUiManifestProperty<T> WithValidationRule(UiValidationRule rule, string message)
 57    {
 158        _currentManifestItem.ValidationRule = rule;
 159        _currentManifestItem.ValidationRuleMessage = message;
 160        return this;
 61    }
 62
 63    public UiManifestResult Render()
 64    {
 165        return new UiManifestResult
 166        {
 167            Title = _manifestTitle,
 168            Items = new List<UiManifestItem>(_manifestItems.Values)
 169        };
 70    }
 71}