public void CreatesInstanceWithProperties()
        {
            // Arrange
            var property            = typeof(TestPageModel).GetProperty(nameof(TestPageModel.Property1));
            var lifecycleProperties = new[] { new LifecycleProperty(property, "key") };
            var factory             = new PageSaveTempDataPropertyFilterFactory(lifecycleProperties);
            var serviceProvider     = CreateServiceProvider();

            // Act
            var filter = factory.CreateInstance(serviceProvider);

            // Assert
            var pageFilter = Assert.IsType <PageSaveTempDataPropertyFilter>(filter);

            Assert.Same(lifecycleProperties, pageFilter.Properties);
        }
        public void OnProvidersExecuting(PageApplicationModelProviderContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var pageApplicationModel = context.PageApplicationModel;
            var handlerType          = pageApplicationModel.HandlerType.AsType();

            var tempDataProperties = SaveTempDataPropertyFilterBase.GetTempDataProperties(handlerType, _options);

            if (tempDataProperties == null)
            {
                return;
            }

            var filter = new PageSaveTempDataPropertyFilterFactory(tempDataProperties);

            pageApplicationModel.Filters.Add(filter);
        }