private static Assembly GetPluginAssembly(GlobalEventDefaultHandler configHandler)
{
if (HttpContext.Current != null && HttpContext.Current.Server != null)
{
GlobalEventsDefaultHandler globalEvents = new GlobalEventsDefaultHandler();
string folderPath = HttpContext.Current.Server.MapPath("~/" + AppConfig.Instance.WebFramePlugins.Path.Trim(new[] { '/', '\\', ' ' }));
string binFolderPath = HttpContext.Current.Server.MapPath("~/bin");
globalEvents.PluginAssemblyLoader(folderPath, binFolderPath);
}
Assembly pluginAssembly = null;
if (AppDomain.CurrentDomain.GetAssemblies().Any(asmbl => asmbl.FullName == configHandler.ClassAssembly))
{
pluginAssembly = AppDomain.CurrentDomain.GetAssemblies().First(asmbl => asmbl.FullName == configHandler.ClassAssembly);
}
else if (!configHandler.ClassAssembly.Contains("Version") && !configHandler.ClassAssembly.Contains("Culture") && !configHandler.ClassAssembly.Contains("PublicKeyToken") && AppDomain.CurrentDomain.GetAssemblies().Any(asmbl => !String.IsNullOrEmpty(asmbl.FullName) && asmbl.FullName.StartsWith(configHandler.ClassAssembly)))
{
pluginAssembly = AppDomain.CurrentDomain.GetAssemblies().First(asmbl => !String.IsNullOrEmpty(asmbl.FullName) && asmbl.FullName.StartsWith(configHandler.ClassAssembly));
}
return pluginAssembly;
}