public void TryGetFilter()
        {
#pragma warning disable CS8604 // Possible null reference argument.
#pragma warning disable CS8602 // Dereference of a possibly null reference.
            var items = StateItem.All;
            ListCollectionView view            = new(items);
            FilterPresenter?   filterPresenter = FilterPresenter.Get(view);
            Assert.IsNotNull(filterPresenter);
            EnumFilterInitializer  initializer = new();
            EnumFilter <StateEnum>?filter      = initializer.TryCreateFilter(filterPresenter, nameof(StateItem.State)) as EnumFilter <StateEnum>;

            Assert.IsNotNull(filter);
            Assert.IsFalse(filter.IsActive);
            Assert.AreSame(filterPresenter, filter.FilterPresenter);
            Assert.AreEqual(items.Count, view.Count);

            List <StateEnum> selected   = new(new StateEnum[] { StateEnum.State1, StateEnum.State4 });
            List <StateEnum> unselected = new();

            filter.SelectedValuesChanged(addedItems: selected, removedItems: unselected);

            Assert.IsTrue(filter.IsActive);
            var filtered = FilterPresenterTest.GetCollection(view);
            Assert.AreEqual(selected.Count, filtered.Count);
            Assert.AreEqual(selected[0], ((StateItem)filtered[0]).State);
            Assert.AreEqual(selected[1], ((StateItem)filtered[1]).State);

            //filterPresenter.IsFilterActive = false;

            filtered = FilterPresenterTest.GetCollection(view);
            Assert.AreEqual(items.Count, filtered.Count);

#pragma warning restore CS8602 // Dereference of a possibly null reference.
#pragma warning restore CS8604 // Possible null reference argument.
        }
Exemple #2
0
 public bool GenerateOptionSet(OptionSetMetadataBase optionSetMetadata, IServiceProvider services)
 {
     if (EnumFilter.GenerateOptionSet(optionSetMetadata, services))
     {
         OptionSetMetadata.Add(optionSetMetadata.MetadataId.GetValueOrDefault(), optionSetMetadata);
     }
     return(DefaultService.GenerateOptionSet(optionSetMetadata, services));
 }
            public ITableMulipleValueFilter <T, List <TEnum>, TEnum> AddFilter <TEnum>(Expression <Func <T, TEnum> > memberExpression) where TEnum : struct
            {
                if (!typeof(TEnum).IsEnum)
                {
                    var nullFilter = new EnumFilter <T, TEnum>();
                    nullFilter.SetTableBuilder(this);
                    return(nullFilter);
                }

                var filter = this.CreateFilter <EnumFilter <T, TEnum>, TEnum>(memberExpression);

                return(filter);
            }
Exemple #4
0
        public EnumFilterTests()
        {
            items = new[]
            {
                new GridModel(),
                new GridModel {
                    Enum = TestEnum.First
                },
                new GridModel {
                    Enum = TestEnum.Second
                },
                new GridModel {
                    Enum = TestEnum.First, NEnum = TestEnum.Second
                },
                new GridModel {
                    Enum = TestEnum.Second, NEnum = TestEnum.First
                }
            }.AsQueryable();

            nEnumExpression = (model) => model.NEnum;
            enumExpression  = (model) => model.Enum;
            filter          = new EnumFilter();
        }
Exemple #5
0
 public async Task <PageModel <EnumModel> > GetEnumsAsync(int solutionId, int?pageIndex, int?pageSize, EnumFilter filter)
 {
     return(await _mediator.Send(new GetEnums()
     {
         SolutionId = solutionId, PageIndex = pageIndex, PageSize = pageSize, Filter = filter
     }));
 }
Exemple #6
0
        private static void ConfigureSwagger(HttpConfiguration config)
        {
            var globalParameterFilter = new GlobalParameterFilter(
                new Dictionary <string, Parameter>(StringComparer.InvariantCultureIgnoreCase)
            {
                {
                    "SubscriptionIdParameter",
                    new Parameter
                    {
                        name        = "subscriptionId",
                        @in         = "path",
                        required    = true,
                        type        = "string",
                        description = "Subscription ID"
                    }
                },
                {
                    "ResourceGroupNameParameter",
                    new Parameter
                    {
                        name             = "resourceGroupName",
                        @in              = "path",
                        required         = true,
                        type             = "string",
                        description      = "Resource Group Name",
                        vendorExtensions = new Dictionary <string, object>
                        {
                            {
                                "x-ms-parameter-location", "method"
                            }
                        }
                    }
                },
                {
                    "AccountNameParameter",
                    new Parameter
                    {
                        name             = "accountName",
                        @in              = "path",
                        required         = true,
                        type             = "string",
                        description      = "Account Name",
                        vendorExtensions = new Dictionary <string, object>
                        {
                            {
                                "x-ms-parameter-location", "method"
                            }
                        }
                    }
                },
                {
                    "ChannelNameParameter",
                    new Parameter
                    {
                        name             = "channelName",
                        @in              = "path",
                        required         = true,
                        type             = "string",
                        description      = "Channel Name",
                        vendorExtensions = new Dictionary <string, object>
                        {
                            {
                                "x-ms-parameter-location", "method"
                            }
                        }
                    }
                },
                {
                    "ApiVersionParameter",
                    new Parameter
                    {
                        name        = "api-version",
                        @in         = "query",
                        required    = true,
                        type        = "string",
                        description = "API version"
                    }
                }
            });

            config.EnableSwagger(c =>
            {
                c.PrettyPrint();

                c.Schemes(new[] { "https" });

                c.SingleApiVersion(ApiVersionStore.DefaultApiVersion, NameStore.ServiceTitle)
                .Description(NameStore.ServiceDescription);

                c.OAuth2("azure_auth")
                .AuthorizationUrl("https://login.microsoftonline.com/common/oauth2/authorize")
                .Flow("implicit")
                .Description("Azure Active Directory OAuth2 Flow")
                .Scopes(s => s.Add("user_impersonation", "impersonate your user account"));

                var commentFile = Path.Combine(
                    AppDomain.CurrentDomain.BaseDirectory,
                    $"{Assembly.GetExecutingAssembly().GetName().Name}.xml");
                c.IncludeXmlComments(commentFile);

                var enumFilter = new EnumFilter(commentFile);

                c.SchemaFilter <SubclassFilter>();
                c.SchemaFilter <AzureResourceFilter>();
                c.SchemaFilter <ClientFlattenFilter>();
                c.SchemaFilter(() => enumFilter);
                c.SchemaFilter <MutabilityFilter>();
                c.SchemaFilter <ReadOnlyFilter>();
                c.SchemaFilter <ExternalFilter>();

                c.OperationFilter(() => globalParameterFilter);
                c.OperationFilter <DefaultResponseFilter>();
                c.OperationFilter <ExampleFilter>();
                c.OperationFilter <NonPageableFilter>();
                c.OperationFilter <DocumentFilter>();

                c.DocumentFilter(() => enumFilter);
                c.DocumentFilter <SubclassFilter>();
                c.DocumentFilter(() => globalParameterFilter);
                c.DocumentFilter <DocumentFilter>();
            })
            .EnableSwaggerUi();
        }