diff --git a/MCTG/ConsoleApp/Menu/Menu.cs b/MCTG/ConsoleApp/Menu/Menu.cs index fb6a09e..169a66b 100644 --- a/MCTG/ConsoleApp/Menu/Menu.cs +++ b/MCTG/ConsoleApp/Menu/Menu.cs @@ -38,23 +38,10 @@ namespace ConsoleApp.Menu CurrentSelected = _selectList[0].Item; } - public Menu(string title, Dictionary lines) : this(title, CreateSelection(lines)) + public Menu(string title, Dictionary lines) : this(title, CreateSelection(lines)) { } - public static Selector[] CreateSelection(Dictionary lines) - { - if (lines is null) - { - throw new ArgumentNullException(nameof(lines)); - } - - Selector[] selections = new Selector[lines.Count]; - foreach (KeyValuePair line in lines) - { - selections.Append(new Selector(line.Key, line.Value)); - } - return selections; - } + public static Selector[] CreateSelection(List lines); public virtual void Display() { diff --git a/MCTG/ConsoleApp/Menu/SearcherRecipe.cs b/MCTG/ConsoleApp/Menu/SearcherRecipe.cs index b437757..1bf77b5 100644 --- a/MCTG/ConsoleApp/Menu/SearcherRecipe.cs +++ b/MCTG/ConsoleApp/Menu/SearcherRecipe.cs @@ -18,12 +18,12 @@ namespace ConsoleApp.Menu : base(title, selections) { } - private SearcherRecipe(string title, Dictionary lines) + private SearcherRecipe(string title, Dictionary lines) : base(title, lines) { } public SearcherRecipe(RecipeCollection recipeCollection) - : this("Recipe search", recipeCollection.ToDictionary(recipe => recipe.GetHashCode())) + : this("Recipe search", recipeCollection.ToDictionary(r => r.GetHashCode())) { } diff --git a/MCTG/Model/Recipes/RecipeCollection.cs b/MCTG/Model/Recipes/RecipeCollection.cs index d439c76..42d4971 100644 --- a/MCTG/Model/Recipes/RecipeCollection.cs +++ b/MCTG/Model/Recipes/RecipeCollection.cs @@ -10,10 +10,9 @@ namespace Model /// Define a collection of . ///
This class implement and . /// - public class RecipeCollection : IList, IEquatable + public class RecipeCollection : List, IEquatable { #region Attributes - private readonly List _recipes; private string _description = ""; #endregion @@ -33,12 +32,6 @@ namespace Model _description = value; } } - - #region IList Prperties - public int Count => _recipes.Count; - public bool IsReadOnly => false; - public Recipe this[int index] { get => _recipes[index]; set => _recipes[index] = value; } - #endregion #endregion #region Constructors @@ -48,8 +41,8 @@ namespace Model /// A short description of what this list will contain /// Recipes to add in this new collection public RecipeCollection(string description, params Recipe[] recipes) + : base(recipes) { - _recipes = new List(recipes); Description = description; } #endregion @@ -63,7 +56,7 @@ namespace Model /// public Recipe? GetRecipeById(int id) { - Recipe? recipe = _recipes.Find(r => r.Id == id); + Recipe? recipe = this.Find(r => r.Id == id); if (recipe == null) throw new ArgumentException("No _recipes match the given id."); return recipe; } @@ -77,66 +70,14 @@ namespace Model { return new RecipeCollection( description: $"Results of the research: {str}", - recipes: _recipes.FindAll(x => x.Title.ToLower().Contains(str.ToLower())).ToArray()); - } - - #region IList Methods - public int IndexOf(Recipe item) - { - return _recipes.IndexOf(item); - } - - public void Insert(int index, Recipe item) - { - _recipes.Insert(index, item); - } - - public void RemoveAt(int index) - { - _recipes.RemoveAt(index); - } - - public void Add(Recipe item) - { - _recipes.Add(item); - } - - public void Clear() - { - _recipes.Clear(); + recipes: this.FindAll(x => x.Title.ToLower().Contains(str.ToLower())).ToArray()); } - public bool Contains(Recipe item) - { - return _recipes.Contains(item); - } - - public void CopyTo(Recipe[] array, int arrayIndex) - { - _recipes.CopyTo(array, arrayIndex); - } - - public bool Remove(Recipe item) - { - return _recipes.Remove(item); - } - - public IEnumerator GetEnumerator() - { - return _recipes.GetEnumerator(); - } - - IEnumerator IEnumerable.GetEnumerator() - { - return _recipes.GetEnumerator(); - } - #endregion - public virtual bool Equals(RecipeCollection? other) { if (other == null) return false; if (other == this) return true; - return _description.Equals(other.Description) && _recipes.Equals(other._recipes); + return _description.Equals(other.Description) && this.Equals(other.this); } public override bool Equals(object? obj) @@ -148,13 +89,13 @@ namespace Model public override int GetHashCode() { - return _recipes.GetHashCode(); + return this.GetHashCode(); } public override string ToString() { StringBuilder sb = new StringBuilder($"[RecipeCollection] - {Description}:\n"); - foreach (Recipe r in _recipes) + foreach (Recipe r in this) { sb.AppendFormat("\t - {0}\n", r.ToString()); }