Exemple #1
0
        // TODO -- harden with a better exception
        public Type FindEnvironmentType()
        {
            if (EnvironmentClassName.IsNotEmpty())
            {
                return(Type.GetType(EnvironmentClassName));
            }

            return(AppDomain.CurrentDomain
                   .Load(AssemblyName)
                   .GetExportedTypes()
                   .First(x => x.IsConcreteTypeOf <IEnvironment>()));
        }
        // TODO -- harden with a better exception
        public Type FindEnvironmentType(IPackageLog log)
        {
            if (EnvironmentClassName.IsNotEmpty())
            {
                log.Trace("Environment class was specified '{0}'", EnvironmentClassName);
                return(Type.GetType(EnvironmentClassName));
            }

            log.Trace("Scanning AppDomain for IEnvironment");
            var foundClass = AppDomain.CurrentDomain
                             .Load(AssemblyName)
                             .GetExportedTypes()
                             .First(x => x.IsConcreteTypeOf <IEnvironment>());

            log.Trace("Found Environment class '{0}'", foundClass);
            return(foundClass);
        }
        public void AssertIsValid()
        {
            var messages = new List <string>();

            if (ApplicationBase.IsEmpty())
            {
                messages.Add("ApplicationBase must be a valid folder");
            }

            if (EnvironmentClassName.IsEmpty() && AssemblyName.IsEmpty())
            {
                messages.Add("Either EnvironmentClassName or AssemblyName must be set");
            }

            if (messages.Any())
            {
                throw new EnvironmentRunnerException(messages.Join("; "));
            }
        }