/// <summary> /// Creat model. /// </summary> /// <param name="modelBuilder">model builder</param> protected override void OnModelCreating(DbModelBuilder modelBuilder) { try { base.OnModelCreating(modelBuilder); OnUserModelCreating(modelBuilder); OnAcvtivityModelCreating(modelBuilder); OnNewsModelCreating(modelBuilder); OnOccurrenceModelCreating(modelBuilder); OnRessourceModelCreating(modelBuilder); OnCountryModelCreating(modelBuilder); OnSectionModelCreating(modelBuilder); OnNewsletterModelCreating(modelBuilder); OnAboutModelCreating(modelBuilder); OnStepModelCreating(modelBuilder); modelBuilder.HasDefaultSchema(ConfigurationManagerHelper.GetAppSettingsToString(Constant.OmsDefaultSchema, string.Empty)); modelBuilder.Properties().Where(p => p.PropertyType == typeof(string) && p.GetCustomAttributes(typeof(MaxLengthAttribute), false).Length == 0).Configure(p => p.HasMaxLength(int.MaxValue)); var entityMethod = typeof(DbModelBuilder).GetMethod("Entity"); var activeServices = ServiceActivation.GetAllActivatedServices().ToList(); foreach (var service in activeServices) { var entityAssembly = ServiceSettings.GetEntityAssembly(service); var dependencies = ServiceSettings.GetAllServiceDependencies(service).ToSystemTypeList(entityAssembly); foreach (var type in dependencies) { if (entityMethod != null) { entityMethod.MakeGenericMethod(type).Invoke(modelBuilder, new object[] { }); } } var configs = ServiceSettings.GetAllServiceConfigurationDependencies(service).ToSystemTypeList(entityAssembly); foreach (var type in configs) { dynamic configurationInstance = Activator.CreateInstance(type); modelBuilder.Configurations.Add(configurationInstance); } } } catch (Exception ex) { throw new ArgumentNullException(ex.Message); } }
/// <summary> /// The overrided load method. /// </summary> public override void Load() { // gets activated services var activeServices = ServiceActivation.GetAllActivatedServices().ToList(); foreach (var service in activeServices) { // gets list of adapters for service var serviceAssemblyName = ServiceSettings.GetServiceAssembly(service, Configuration.Section.Enum.AssemblyType.Service); if (!string.IsNullOrEmpty(serviceAssemblyName)) { var serviceAssembly = Assembly.Load(serviceAssemblyName); var adapters = ServiceSettings.GetAllServiceAdapters(service, Configuration.Section.Enum.AssemblyType.Service); foreach (var adapter in adapters) { var _class = serviceAssembly.GetType(adapter.Key); var _interface = serviceAssembly.GetType(adapter.Value); Bind(_interface).To(_class); } } // gets list of adapters for web Api service var webApiServiceAssemblyName = ServiceSettings.GetServiceAssembly(service, Configuration.Section.Enum.AssemblyType.WebApiService); if (string.IsNullOrEmpty(webApiServiceAssemblyName)) { continue; } { var webApiServiceAssembly = Assembly.Load(webApiServiceAssemblyName); var adapters = ServiceSettings.GetAllServiceAdapters(service, Configuration.Section.Enum.AssemblyType.WebApiService); foreach (var adapter in adapters) { var _class = webApiServiceAssembly.GetType(adapter.Key); var _interface = webApiServiceAssembly.GetType(adapter.Value); Bind(_interface).To(_class); } } } }