using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using TINK.Model; using TINK.Model.Connector; using TINK.MultilingualResources; 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 filterSettings, IEnumerable filterGroupUser) { foreach (var filter in filterSettings) { if (filter.Key == FilterHelper.CARGOBIKE) { Add(new FilterItemMutable( filter.Key, filter.Value, (filterGroupUser != null && filterGroupUser.Count() > 0) ? filterGroupUser.Contains(filter.Key) : true, AppResources.MarkingCargoBike)); continue; } if (filter.Key == FilterHelper.CITYBIKE) { Add(new FilterItemMutable( filter.Key, filter.Value, (filterGroupUser != null && filterGroupUser.Count() > 0) ? filterGroupUser.Contains(filter.Key) : true, AppResources.MarkingCityBike)); continue; } Add(new FilterItemMutable( filter.Key, filter.Value, filterGroupUser != null ? filterGroupUser.Contains(filter.Key) : true, filter.Key)); } } /// Get filter collection which might have been modified for serialization purposes. public Dictionary FilterCollection { get { var dictionary = new Dictionary(); foreach (var entry in this) { dictionary.Add(entry.Key, entry.State); } return dictionary; } } } }