Example #1
0
        public override IImmutableDictionary <string, ITypeSpecBuilder> Process(IReflector reflector, PropertyInfo property, ISpecificationBuilder collection, IImmutableDictionary <string, ITypeSpecBuilder> metamodel)
        {
            var capitalizedName = property.Name;
            var type            = property.DeclaringType;

            var facets = new List <IFacet> {
                new PropertyAccessorFacet(property, collection)
            };

            AddSetFacet(facets, property, collection);

            MethodHelpers.AddHideForSessionFacetNone(facets, collection);
            MethodHelpers.AddDisableFacetAlways(facets, collection);
            MethodHelpers.FindDefaultHideMethod(reflector, facets, property.DeclaringType, MethodType.Object, "PropertyDefault", collection, LoggerFactory);
            MethodHelpers.FindAndRemoveHideMethod(reflector, facets, type, MethodType.Object, capitalizedName, collection, LoggerFactory);
            FacetUtils.AddFacets(facets);
            return(metamodel);
        }