/// <summary> /// Retrieves or tries to create the filter model, using as a key pair {viewKey, initializer}. /// </summary> /// <param name="viewKey">A string representing a key of the set of filters.</param> /// <param name="initializer">Initialiser filter that defines filter in the collection of filters.</param> /// <returns>FilterPresenter instance, if it is possible provide for couples viewKey and initializer. Otherwise, null.</returns> public Filter TryGetFilter(string viewKey, FilterInitializer initializer) { Filter filter = null; if (viewKey != null) { FiltersCollection filtersEntry; // Get registered collection by key. if (filters.ContainsKey(viewKey)) { filtersEntry = filters[viewKey]; } else { filtersEntry = new FiltersCollection(this); filters.Add(viewKey, filtersEntry); } var filterKey = initializer.GetType(); if (filtersEntry.ContainsKey(filterKey)) { filter = filtersEntry[filterKey]; } else { filter = initializer.NewFilter(this, viewKey); if (filter != null) { filtersEntry[filterKey] = filter; } } } return(filter); }
// <summary> // Initializes and configures the ViewModel for FilterControl. // </summary> // <param name="viewKey">A string representing the key for a set of filters.</param> // <param name="filterInitializers"> Filter initialisers to determine permissible set of the filters in the FilterControlVm.</param> // <returns>Instance of FilterControlVm that was bind to view.</returns> public FilterControlVm TryGetFilterControlVm(string viewKey, IEnumerable <FilterInitializer> filterInitializers) { //string viewKey = view.Key; FilterControlVm viewModel = null; if (viewKey != null) { FiltersCollection filtersEntry; // Get registered collection by key. if (filters.ContainsKey(viewKey)) { filtersEntry = filters[viewKey]; } else { filtersEntry = new FiltersCollection(this); filters.Add(viewKey, filtersEntry); } filterInitializers = filterInitializers ?? FilterInitializersManager.Default; foreach (var initializer in filterInitializers) { var filterKey = initializer.GetType(); Filter filter; if (filtersEntry.ContainsKey(filterKey)) { filter = filtersEntry[filterKey]; } else { filter = initializer.NewFilter(this, viewKey); if (filter != null) { filtersEntry[filterKey] = filter; } } if (filter != null) { viewModel = viewModel ?? new FilterControlVm(); viewModel.Add(filter); } } //view.ItemsSource = viewModel; } return(viewModel); }
private Mock <IUmbracoXmlSitemapSection> CreateMock(string engineType, string cacheType, string generatorType, string initializerType) { var mock = new Mock <IUmbracoXmlSitemapSection>(); var filtesrCollection = new FiltersCollection(); filtesrCollection.Add(new FilterElement { Type = typeof(FakeFilter) }); mock.Setup(m => m.Engine).Returns(Type.GetType(engineType)); mock.Setup(m => m.Cache).Returns(Type.GetType(cacheType)); mock.Setup(m => m.Generator).Returns(Type.GetType(generatorType)); mock.Setup(m => m.Initializer).Returns(Type.GetType(initializerType)); mock.Setup(m => m.Filters).Returns(filtesrCollection); return(mock); }