Esempio n. 1
0
        public CustomObjectDataSource(IEnumerable <IBusinessObject> businessObjects)
            : base()
        {
            this.businessObjects = businessObjects;

            IBusinessObject b = businessObjects.First();

            businessObjectType = b.GetType();

            TypeName = "Caisis.BOL.ObjectDataSourceAdapter`1[[" + businessObjectType.FullName + ",Caisis.BOL]],Caisis.BOL";

            ObjectCreating += new ObjectDataSourceObjectEventHandler(CustomObjectDataSource_ObjectCreating);

            Inserting += new ObjectDataSourceMethodEventHandler(CustomObjectDataSource_Inserting);
            Updating  += new ObjectDataSourceMethodEventHandler(CustomObjectDataSource_Updating);
            Updated   += new ObjectDataSourceStatusEventHandler(CustomObjectDataSource_Updated);
            Deleting  += new ObjectDataSourceMethodEventHandler(CustomObjectDataSource_Deleting);
        }
Esempio n. 2
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            DataObjectType = BuildManager.GetType(DataObjectTypeName, true);

            // Make a generic type to give us a unique key to pass to the MetaModel API
            Type contextType = typeof(DummyContext <>).MakeGenericType(DataObjectType);

            // Set the context type and entity set name on ourselves. Note that in this scenario those
            // concept are somewhat artificial, since we don't have a real context. We can set the entity set name
            // to anything, but using the DataObjectType makes some Dynamic Data error messages clearer.
            ((IDynamicDataSource)this).ContextType   = contextType;
            ((IDynamicDataSource)this).EntitySetName = DataObjectType.Name;

            MetaModel model = null;

            try {
                model = MetaModel.GetModel(contextType);
            }
            catch {
                var contextConfiguration = new ContextConfiguration()
                {
                    MetadataProviderFactory = (type => new InMemoryMetadataTypeDescriptionProvider(type, new AssociatedMetadataTypeTypeDescriptionProvider(type)))
                };

                var typeDescriptionProvider = contextConfiguration.MetadataProviderFactory(DataObjectType);
                var typeDescriptor          = typeDescriptionProvider.GetTypeDescriptor(DataObjectType);
                model = new MetaModel();
                model.RegisterContext(
                    new SimpleModelProvider(contextType, DataObjectType, typeDescriptor),
                    contextConfiguration);
            }

            Inserted += new ObjectDataSourceStatusEventHandler(DynamicObjectDataSource_Inserted);
            Updated  += new ObjectDataSourceStatusEventHandler(DynamicObjectDataSource_Updated);
        }