mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2024-09-27 17:36:29 +02:00
67 lines
2.5 KiB
C#
67 lines
2.5 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using TINK.Model;
|
|
using TINK.Model.Connector.Filter;
|
|
|
|
namespace TINK.ViewModel.Map
|
|
{
|
|
public class GroupFilterMapPage : IGroupFilterMapPage
|
|
{
|
|
public GroupFilterMapPage(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 IGroupFilter Filter { get; }
|
|
|
|
/// <summary> Gets the active filters.</summary>
|
|
/// <param name="filterCollection">Filter collection to get group from.</param>
|
|
/// <returns>List of active filters.</returns>
|
|
/// <todo>Rename to ToFilterList</todo>
|
|
public IList<string> GetGroup()
|
|
{
|
|
return this.Where(x => x.Value == FilterState.On).Select(x => x.Key).ToList();
|
|
}
|
|
|
|
/// <summary> Performs filtering on response-group. </summary>
|
|
public IEnumerable<string> DoFilter(IEnumerable<string> filter = null) => Filter.DoFilter(filter);
|
|
|
|
private IDictionary<string, FilterState> FilterDictionary { get; }
|
|
|
|
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();
|
|
}
|
|
}
|