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); }
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); }