/// <summary> /// Get the entity Service(supporting CRUD operations). /// </summary> /// <param name="typeFullName"></param> /// <returns></returns> public static object GetService(string typeFullName) { EntityRegistrationContext ctx = _managableEntities[typeFullName]; // Singleton. if (ctx.IsSingletonService) { return(ctx.Service); } object service = null; object repository = null; if (ctx.CreationMethod == EntityCreationType.Factory) { service = ctx.FactoryMethodForService(); if (ctx.FactoryMethodForRepository != null) { repository = ctx.FactoryMethodForRepository(); } if (repository != null && ctx.IsRepositoryConfigurationRequired) { RepositoryConfigurator.Configure((IRepositoryConfigurable)repository); } } else { service = _entityRegistrarIoc.GetService(typeFullName); } return(service); }
/// <summary> /// Get the Domain entity Service object that supports(CRUD) operations. /// </summary> /// <param name="type"></param> /// <returns></returns> public static object GetRepository(string typeFullName) { EntityRegistrationContext ctx = _managableEntities[typeFullName]; // If factory method was supplied. if (ctx.FactoryMethodForRepository != null) { return(ctx.FactoryMethodForRepository()); } return(_entityRegistrarIoc.GetRepository(typeFullName)); }
/// <summary> /// Get instance of entity repository. /// </summary> /// <param name="ctx"></param> /// <returns></returns> public static object GetRepository(EntityRegistrationContext ctx) { IRepositoryConfigurable repo = null; // If factory method was supplied. if (ctx.FactoryMethodForRepository != null) { repo = ctx.FactoryMethodForRepository() as IRepositoryConfigurable; if (repo != null && ctx.IsRepositoryConfigurationRequired) { RepositoryFactory.Configure(ctx.ConnectionId, repo); } return(repo); } return(ctx.Repository); }
/// <summary> /// Get instance of entity repository. /// </summary> /// <param name="typeFullName">typeof(T).FullName</param> /// <returns></returns> public static object GetRepository(string typeFullName) { if (!_managableEntities.ContainsKey(typeFullName)) { throw new ArgumentException("The type : " + typeFullName + " has not been registered in EntityRegistration"); } EntityRegistrationContext ctx = _managableEntities[typeFullName]; IRepositoryConfigurable repo = null; // If factory method was supplied. if (ctx.FactoryMethodForRepository != null) { repo = ctx.FactoryMethodForRepository() as IRepositoryConfigurable; if (repo != null && ctx.IsRepositoryConfigurationRequired) { RepositoryFactory.Configure(ctx.ConnectionId, repo); } return(repo); } return(ctx.Repository); }