void AddNewCustomFilter(FilterItem filterItem) { try { if (string.IsNullOrEmpty(filterItem.Name)) { int prevIndex = CustomFilters.Select(fi => Regex.Match(fi.Name, NewFilterName + @" (?<index>\d+)")).Where(m => m.Success).Select(m => int.Parse(m.Groups["index"].Value)).DefaultIfEmpty(0).Max(); filterItem.Name = NewFilterName + " " + (prevIndex + 1); } else { var existing = CustomFilters.FirstOrDefault(fi => fi.Name == filterItem.Name); if (existing != null) { CustomFilters.Remove(existing); } } CustomFilters.Add(filterItem); SaveCustomFilters(); } catch (Exception ex) { throw new Exception(ex.Message); } }
public void UpdateUI(IFilter filter = null) { if (!IsRefreshingUi) { IsRefreshingUi = true; SetItems(); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Items))); foreach (var item in StandardFilters.Values.Concat(CustomFilters.Select(cf => cf.SelectedFilter)).Except(new[] { filter })) { item.UpdateUI(); } OrderFilter.UpdateUI(); IsRefreshingUi = false; } }
public DemoController() { ModuleId = 10; customfilters = CustomFilters.Select(x => x.FilterId).ToArray(); }