/// <override></override> void IRegistrar.RegisterModelObjectType(ModelObjectType modelObjectType) { if (initializingLibrary == null) { throw new InvalidOperationException("RegisterModelObjectType can only be called while a library is initializing."); } if (string.IsNullOrEmpty(initializingLibrary.Name)) { throw new InvalidOperationException("RegisterLibrary has not been called or the library has an empty library name."); } if (modelObjectType == null) { throw new ArgumentNullException("modelObjectType"); } if (!Project.IsValidName(modelObjectType.Name)) { throw new ArgumentException("'{0}' is not a valid model object type name.", modelObjectType.Name); } if (modelObjectType.LibraryName != initializingLibrary.Name) { throw new InvalidOperationException("All model objects of a registering library must have the library's library name."); } if (modelObjectType.LibraryName != initializingLibrary.Name) { throw new InvalidOperationException(string.Format("The library name of model object type '{0}' is '{1}' instead of '{2}'.", modelObjectType.GetType().Name, modelObjectType.LibraryName, initializingLibrary.Name)); } // modelObjectTypes.Add(modelObjectType); // Create a delegate that adds required parameters to the CreateModelObjectDelegate // of the shape when called if (repository != null && repository.IsOpen) { RegisterModelObjectEntityType(modelObjectType, addingLibrary); } }
/// <override></override> void IRegistrar.RegisterLibrary(string name, int defaultRepositoryVersion) { if (!Project.IsValidName(name)) { throw new ArgumentException(string.Format("'{0}' is not a valid library name.", name)); } initializingLibrary.Name = name; if (addingLibrary) { settings.AddLibrary(name, initializingLibrary.Assembly.FullName, defaultRepositoryVersion); } }