sharee.bike-App/TINKLib/Model/Settings/GroupFilterSettings.cs
Anja Müller-Meißner 0468955d49 Version 3.0.338
2022-09-08 09:55:14 +02:00

76 lines
2.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using TINK.Model;
using TINK.Model.Connector.Filter;
namespace TINK.ViewModel.Settings
{
public class GroupFilterSettings : IGroupFilterSettings
{
public GroupFilterSettings(IDictionary<string, FilterState> filterDictionary = null)
{
FilterDictionary = filterDictionary ?? new Dictionary<string, FilterState>();
Filter = filterDictionary != null
? (IGroupFilter)new IntersectGroupFilter(FilterDictionary.Where(x => x.Value == FilterState.On).Select(x => x.Key))
: new NullGroupFilter();
}
private IDictionary<string, FilterState> FilterDictionary { get; set; }
private IGroupFilter Filter { get; }
/// <summary> Performs filtering on response -group. </summary>
public IEnumerable<string> DoFilter(IEnumerable<string> filter = null) => Filter.DoFilter(filter);
public FilterState this[string key] { get => FilterDictionary[key]; set => FilterDictionary[key] = value; }
public ICollection<string> Keys => FilterDictionary.Keys;
public ICollection<FilterState> Values => FilterDictionary.Values;
public int Count => FilterDictionary.Count;
public bool IsReadOnly => true;
public void Add(string key, FilterState value)
{
throw new System.NotImplementedException();
}
public void Add(KeyValuePair<string, FilterState> item)
{
throw new System.NotImplementedException();
}
public void Clear()
{
throw new System.NotImplementedException();
}
public bool Contains(KeyValuePair<string, FilterState> item) => FilterDictionary.Contains(item);
public bool ContainsKey(string key) => FilterDictionary.ContainsKey(key);
public void CopyTo(KeyValuePair<string, FilterState>[] array, int arrayIndex) => FilterDictionary.CopyTo(array, arrayIndex);
public IEnumerator<KeyValuePair<string, FilterState>> GetEnumerator() => FilterDictionary.GetEnumerator();
public bool Remove(string key)
{
throw new System.NotImplementedException();
}
public bool Remove(KeyValuePair<string, FilterState> item)
{
throw new System.NotImplementedException();
}
public bool TryGetValue(string key, out FilterState value) => FilterDictionary.TryGetValue(key, out value);
IEnumerator IEnumerable.GetEnumerator() => FilterDictionary.GetEnumerator();
}
}