コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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));
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }