sharee.bike-App/TINKLib/ViewModel/Settings/SettingsBikeFilterViewModel.cs

66 lines
2.5 KiB
C#
Raw Normal View History

2021-05-13 20:03:07 +02:00
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using TINK.Model;
using TINK.Model.Connector;
2021-12-08 20:03:50 +01:00
using TINK.MultilingualResources;
2021-05-13 20:03:07 +02:00
namespace TINK.ViewModel.Settings
{
/// <summary> Holds the filters to display..</summary>
/// <remarks> Former name: FilterCollectionMutable.</remarks>
public class SettingsBikeFilterViewModel : ObservableCollection<FilterItemMutable>
{
/// <summary> Constructs a filter collection object.</summary>
2021-12-08 20:03:50 +01:00
/// <param name="filterSettings">All available filters.</param>
/// <param name="filterGroupUser">Filters which apply to logged in user.</param>
2021-05-13 20:03:07 +02:00
public SettingsBikeFilterViewModel(
2021-12-08 20:03:50 +01:00
IGroupFilterSettings filterSettings,
IEnumerable<string> filterGroupUser)
2021-05-13 20:03:07 +02:00
{
2021-12-08 20:03:50 +01:00
foreach (var filter in filterSettings)
2021-05-13 20:03:07 +02:00
{
2022-01-04 18:54:03 +01:00
if (filter.Key == FilterHelper.CARGOBIKE)
2021-05-13 20:03:07 +02:00
{
Add(new FilterItemMutable(
2021-12-08 20:03:50 +01:00
filter.Key,
filter.Value,
(filterGroupUser != null && filterGroupUser.Count() > 0) ? filterGroupUser.Contains(filter.Key) : true,
AppResources.MarkingCargoBike));
2021-05-13 20:03:07 +02:00
continue;
}
2022-01-04 18:54:03 +01:00
if (filter.Key == FilterHelper.CITYBIKE)
2021-05-13 20:03:07 +02:00
{
Add(new FilterItemMutable(
2021-12-08 20:03:50 +01:00
filter.Key,
filter.Value,
(filterGroupUser != null && filterGroupUser.Count() > 0) ? filterGroupUser.Contains(filter.Key) : true,
AppResources.MarkingCityBike));
2021-05-13 20:03:07 +02:00
continue;
}
Add(new FilterItemMutable(
2021-12-08 20:03:50 +01:00
filter.Key,
filter.Value,
filterGroupUser != null ? filterGroupUser.Contains(filter.Key) : true,
filter.Key));
2021-05-13 20:03:07 +02:00
}
}
/// <summary> Get filter collection which might have been modified for serialization purposes.</summary>
public Dictionary<string, FilterState> FilterCollection
{
get
{
2021-12-08 20:03:50 +01:00
var dictionary = new Dictionary<string, FilterState>();
foreach (var entry in this)
2021-05-13 20:03:07 +02:00
{
2021-12-08 20:03:50 +01:00
dictionary.Add(entry.Key, entry.State);
2021-05-13 20:03:07 +02:00
}
2021-12-08 20:03:50 +01:00
return dictionary;
2021-05-13 20:03:07 +02:00
}
}
}
}