< Summary

Information
Class: MyNet.UI.ViewModels.List.ExtendedCollectionDataProvider<T>
Assembly: MyNet.UI
File(s): https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/ViewModels/List/ExtendedCollectionDataProvider.cs
Tag: 323_28699572109
Line coverage
76%
Covered lines: 13
Uncovered lines: 4
Coverable lines: 17
Total lines: 78
Line coverage: 76.4%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)50%22100%
get_Source()100%11100%
get_FilteredItems()100%11100%
get_Items()100%11100%
get_FilteredCount()100%11100%
ConnectFiltered()100%11100%
Connect()100%210%
ConnectGroups()100%11100%
SetFilter(...)100%11100%
ClearFilter()100%210%
SetSorting(...)100%210%
ClearSorting()100%11100%
SetGrouping(...)100%210%
ClearGrouping()100%11100%
SetPaging(...)100%11100%
ClearPaging()100%11100%
Dispose()100%11100%

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.UI/ViewModels/List/ExtendedCollectionDataProvider.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="ExtendedCollectionDataProvider.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using System;
 8using System.Collections.Generic;
 9using System.Collections.ObjectModel;
 10using DynamicData;
 11using MyNet.Observable.Collections;
 12using MyNet.Observable.Collections.Filters;
 13using MyNet.Observable.Collections.Grouping;
 14using MyNet.Observable.Collections.Sorting;
 15
 16namespace MyNet.UI.ViewModels.List;
 17
 18/// <summary>
 19/// Adapts an <see cref="ExtendedCollection{T}"/> instance to the list view model pipeline abstraction.
 20/// </summary>
 21/// <typeparam name="T">The item type.</typeparam>
 22public sealed class ExtendedCollectionDataProvider<T>(ExtendedCollection<T> collection) : IListDataProvider<T>
 23    where T : notnull
 24{
 25    /// <summary>
 26    /// Gets the adapted collection.
 27    /// </summary>
 6328    public ExtendedCollection<T> Collection { get; } = collection ?? throw new ArgumentNullException(nameof(collection))
 29
 30    /// <inheritdoc />
 6331    public ReadOnlyObservableCollection<T> Source => Collection.Source;
 32
 33    /// <inheritdoc />
 6334    public ReadOnlyObservableCollection<T> FilteredItems => Collection.FilteredItems;
 35
 36    /// <inheritdoc />
 6337    public ReadOnlyObservableCollection<T> Items => Collection.Items;
 38
 39    /// <inheritdoc />
 5140    public int FilteredCount => Collection.Count;
 41
 42    /// <inheritdoc />
 1243    public IObservable<IChangeSet<T>> ConnectFiltered() => Collection.ConnectFiltered();
 44
 45    /// <inheritdoc />
 046    public IObservable<IChangeSet<T>> Connect() => Collection.Connect();
 47
 48    /// <inheritdoc />
 6349    public IObservable<IReadOnlyList<CollectionGroup<T>>> ConnectGroups() => Collection.ConnectGroups();
 50
 51    /// <inheritdoc />
 652    public void SetFilter(IFilter<T> filter) => Collection.SetFilter(filter);
 53
 54    /// <inheritdoc />
 055    public void ClearFilter() => Collection.ClearFilter();
 56
 57    /// <inheritdoc />
 058    public void SetSorting(params ISortingProperty<T>[] sorting) => Collection.SetSorting(sorting);
 59
 60    /// <inheritdoc />
 7561    public void ClearSorting() => Collection.ClearSorting();
 62
 63    /// <inheritdoc />
 064    public void SetGrouping(params IGroupingProperty<T>[] grouping) => Collection.SetGrouping(grouping);
 65
 66    /// <inheritdoc />
 7567    public void ClearGrouping() => Collection.ClearGrouping();
 68
 69    /// <inheritdoc />
 5170    public void SetPaging(int page, int pageSize) => Collection.SetPaging(page, pageSize);
 71
 72    /// <inheritdoc />
 5173    public void ClearPaging() => Collection.ClearPaging();
 74
 75    /// <inheritdoc />
 6376    public void Dispose() => Collection.Dispose();
 77}
 78