예제 #1
0
        public static IAnyPlugin GetPlugin(string pluginName = null)
        {
            if (pluginName == null)
            {
                pluginName = Settings.Instance.CodeGenerator;
            }

            Logger.Instance.Log(Category.Info, Resources.InitializingCodeGenerator);

            if (string.IsNullOrEmpty(pluginName))
            {
                throw new ArgumentException(
                          string.Format(CultureInfo.InvariantCulture,
                                        Resources.ParameterValueIsMissing, "CodeGenerator"));
            }

            IAnyPlugin plugin = null;

            if (pluginName.EqualsIgnoreCase("None"))
            {
                plugin = new NoOpPlugin();
            }
            else
            {
                var config = AutoRestConfiguration.Get();
                plugin = LoadTypeFromAssembly <IAnyPlugin>(config.Plugins, pluginName);
                Settings.PopulateSettings(plugin.Settings, Settings.Instance.CustomSettings);
            }
            Logger.Instance.Log(Category.Info, Resources.GeneratorInitialized,
                                pluginName,
                                plugin.GetType().GetAssembly().GetName().Version);
            return(plugin);
        }
예제 #2
0
        public static IAnyPlugin GetPlugin()
        {
            Logger.LogInfo(Resources.InitializingCodeGenerator);
            if (Settings.Instance == null)
            {
                throw new ArgumentNullException("settings");
            }

            if (string.IsNullOrEmpty(Settings.Instance.CodeGenerator))
            {
                throw new ArgumentException(
                          string.Format(CultureInfo.InvariantCulture,
                                        Resources.ParameterValueIsMissing, "CodeGenerator"));
            }

            IAnyPlugin plugin = null;

            if (Settings.Instance.CodeGenerator.EqualsIgnoreCase("None"))
            {
                plugin = new NoOpPlugin();
            }
            else
            {
                string configurationFile = GetConfigurationFileContent(Settings.Instance);

                if (configurationFile != null)
                {
                    try
                    {
                        var config = JsonConvert.DeserializeObject <AutoRestConfiguration>(configurationFile);
                        plugin = LoadTypeFromAssembly <IAnyPlugin>(config.Plugins, Settings.Instance.CodeGenerator);
                        Settings.PopulateSettings(plugin.Settings, Settings.Instance.CustomSettings);
                    }
                    catch (Exception ex)
                    {
                        throw ErrorManager.CreateError(ex, Resources.ErrorParsingConfig);
                    }
                }
                else
                {
                    throw ErrorManager.CreateError(Resources.ConfigurationFileNotFound);
                }
            }
            Logger.LogInfo(Resources.GeneratorInitialized,
                           Settings.Instance.CodeGenerator,
                           plugin.GetType().Assembly.GetName().Version);
            return(plugin);
        }