using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using TINK.Model; using TINK.Model.Connector; namespace TINK.ViewModel.Settings { /// Holds the filters to display.. /// Former name: FilterCollectionMutable. public class SettingsBikeFilterViewModel : ObservableCollection { /// Constructs a filter collection object. /// All available filters. /// Filters which apply to logged in user. public SettingsBikeFilterViewModel( IGroupFilterSettings p_oFilterSettings, IEnumerable p_oFilterGroupUser) { foreach (var l_oFilter in p_oFilterSettings) { if (l_oFilter.Key == FilterHelper.FILTERTINKGENERAL) { Add(new FilterItemMutable( l_oFilter.Key, l_oFilter.Value, p_oFilterGroupUser != null ? p_oFilterGroupUser.Contains(l_oFilter.Key) : true, "TINK Lastenräder")); continue; } if (l_oFilter.Key == FilterHelper.FILTERKONRAD) { Add(new FilterItemMutable( l_oFilter.Key, l_oFilter.Value, p_oFilterGroupUser != null ? p_oFilterGroupUser.Contains(l_oFilter.Key) : true, "Konrad Stadträder")); continue; } Add(new FilterItemMutable( l_oFilter.Key, l_oFilter.Value, p_oFilterGroupUser != null ? p_oFilterGroupUser.Contains(l_oFilter.Key) : true, l_oFilter.Key)); } } /// Get filter collection which might have been modified for serialization purposes. public Dictionary FilterCollection { get { var l_Dictionary = new Dictionary(); foreach (var l_oEntry in this) { l_Dictionary.Add(l_oEntry.Key, l_oEntry.State); } return l_Dictionary; } } } }