diff --git a/src/MyNet.Utilities/Converters/IConverter.cs b/src/MyNet.Utilities/Converters/IConverter.cs new file mode 100644 index 0000000..45ac277 --- /dev/null +++ b/src/MyNet.Utilities/Converters/IConverter.cs @@ -0,0 +1,12 @@ +// Copyright (c) Stéphane ANDRE. All Right Reserved. +// See the LICENSE file in the project root for more information. + +namespace MyNet.Utilities.Converters +{ + internal interface IConverter + { + TTo Convert(TFrom item); + + TFrom ConvertBack(TTo item); + } +} diff --git a/src/MyNet.Utilities/ICloneable.cs b/src/MyNet.Utilities/ICloneable.cs index aff9125..496faee 100644 --- a/src/MyNet.Utilities/ICloneable.cs +++ b/src/MyNet.Utilities/ICloneable.cs @@ -3,17 +3,8 @@ namespace MyNet.Utilities { - /// - /// Supports copying, which creates a new instance of a class with the same values as an existing instance. - /// public interface ICloneable { - /// - /// Creates a deep copy of the current object including its properties. - /// - /// - /// A copy of the current object. - /// T Clone(); } } diff --git a/src/MyNet.Utilities/IModifiable.cs b/src/MyNet.Utilities/IModifiable.cs index f39589e..33223c0 100644 --- a/src/MyNet.Utilities/IModifiable.cs +++ b/src/MyNet.Utilities/IModifiable.cs @@ -5,14 +5,8 @@ namespace MyNet.Utilities { public interface IModifiable { - /// - /// Reset IsModified value. - /// void ResetIsModified(); - /// - /// Gets if the object is modified. - /// bool IsModified(); } } diff --git a/src/MyNet.Utilities/IO/ItemsFileProvider.cs b/src/MyNet.Utilities/IO/ItemsFileProvider.cs index ec6aec8..66c3311 100644 --- a/src/MyNet.Utilities/IO/ItemsFileProvider.cs +++ b/src/MyNet.Utilities/IO/ItemsFileProvider.cs @@ -4,23 +4,17 @@ using System; using System.Collections.Generic; using System.IO; -using System.Linq; +using MyNet.Utilities.Providers; namespace MyNet.Utilities.IO { public abstract class ItemsFileProvider : IItemsProvider { - private readonly Func _predicate; - public string? Filename { get; private set; } public IEnumerable Exceptions { get; private set; } = []; - protected ItemsFileProvider(string? filename = null, Func? predicate = null) - { - SetFilename(filename.OrEmpty()); - _predicate = predicate ?? new Func(x => true); - } + protected ItemsFileProvider(string? filename = null) => SetFilename(filename.OrEmpty()); public void SetFilename(string filename) => Filename = filename; @@ -36,7 +30,7 @@ public IEnumerable ProvideItems() var (items, exceptions) = LoadItems(Filename); Exceptions = exceptions; - return items.Where(_predicate); + return items; } protected abstract (IEnumerable items, IEnumerable exceptions) LoadItems(string filename); diff --git a/src/MyNet.Utilities/IItemsProvider.cs b/src/MyNet.Utilities/Providers/IItemsProvider.cs similarity index 87% rename from src/MyNet.Utilities/IItemsProvider.cs rename to src/MyNet.Utilities/Providers/IItemsProvider.cs index e24f940..bf2ce55 100644 --- a/src/MyNet.Utilities/IItemsProvider.cs +++ b/src/MyNet.Utilities/Providers/IItemsProvider.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; -namespace MyNet.Utilities +namespace MyNet.Utilities.Providers { public interface IItemsProvider { diff --git a/src/MyNet.Utilities/Providers/PredicateItemsProvider.cs b/src/MyNet.Utilities/Providers/PredicateItemsProvider.cs index 10e288d..e8a5e2d 100644 --- a/src/MyNet.Utilities/Providers/PredicateItemsProvider.cs +++ b/src/MyNet.Utilities/Providers/PredicateItemsProvider.cs @@ -12,6 +12,9 @@ public class PredicateItemsProvider : IItemsProvider private readonly Func _predicate; private readonly IItemsProvider _itemsProvider; + public PredicateItemsProvider(IEnumerable items, Func predicate) + : this(new ItemsProvider(items), predicate) { } + public PredicateItemsProvider(IItemsProvider provider, Func predicate) { _itemsProvider = provider;