Example #1
0
        protected BreezeGuardContextProvider()
        {
            this.context   = null;
            this.model     = null;
            this.resources = new Dictionary <Type, object>();

            ModelCache.RegisterCreateModelFunc(GetType(), CreateModel);
        }
Example #2
0
        public static void OnModelCreating(DbModelBuilder modelBuilder, Type contextProviderType)
        {
            ApiModelBuilder apiModel = ModelCache.GetApiModel(contextProviderType);

            // Ignore all entities not part of the API model
            modelBuilder.Ignore(apiModel.GetIgnoredEntityTypes());

            // Explicitly ignored properties
            foreach (var entityTypeConfig in apiModel.GetEntityTypeConfigs())
            {
                foreach (PropertyInfo propertyInfo in entityTypeConfig.GetIgnoredProperties())
                {
                    // Call the Ignore method below with the type parameters for this PropertyInfo
                    IgnoreMethodInfo.MakeGenericMethod(entityTypeConfig.Type, propertyInfo.PropertyType).Invoke(
                        null, new object[] { modelBuilder, propertyInfo });
                }
            }
        }
Example #3
0
        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
        {
            JsonProperty property = base.CreateProperty(member, memberSerialization);

            if (this.model == null)
            {
                this.model = ModelCache.GetApiModel(this.ContextProviderType);
            }

            ApiEntityTypeConfiguration entityTypeConfig;
            ApiPropertyConfiguration   propertyConfig;

            if (this.model.TryGetEntityTypeConfig(member.DeclaringType, out entityTypeConfig) &&
                entityTypeConfig.TryGetPropertyConfig((PropertyInfo)member, out propertyConfig) &&
                propertyConfig.Ignored)
            {
                property.Ignored = true;
            }

            return(property);
        }
Example #4
0
 public override IEdmModel GetModel(Type elementClrType, HttpRequestMessage request,
                                    HttpActionDescriptor actionDescriptor)
 {
     return(ModelCache.GetODataModel(this.ContextProviderType));
 }