/// <summary> /// Implementation of <see cref="IModuleTypeLoader.LoadModuleType"/> /// </summary> public void LoadModuleType(ModuleInfo moduleInfo) { var match = Regex.Match(moduleInfo.Ref, RegexExpression); if (!match.Success) { return; } var packageInfo = new PackageMetadata( match.Groups["PACKAGE"].Value, new Version( Convert.ToInt32(match.Groups["MAJOR"].Value), Convert.ToInt32(match.Groups["MINOR"].Value), Convert.ToInt32(match.Groups["PATCH"].Value)), match.Groups["SUFFIX"].Value); Exception error = null; try { ModuleDownloadProgressChanged?.Invoke(this, new ModuleDownloadProgressChangedEventArgs(moduleInfo, 1000000, 2000000)); this.packageManagingService.EnsurePackageLoaded(packageInfo); } catch (Exception e) { this.logger.Log($"[{nameof(PackageModuleTypeLoader)}.{nameof(LoadModuleType)}(scheme:'{scheme}', moduleRef:'{moduleInfo.Ref}')] - An error occurs during the loading of the package : {ExtractException(e)}", Category.Exception, Priority.High); error = e; } ModuleDownloadProgressChanged?.Invoke(this, new ModuleDownloadProgressChangedEventArgs(moduleInfo, 2000000, 2000000)); LoadModuleCompleted?.Invoke(this, new LoadModuleCompletedEventArgs(moduleInfo, error)); }
/// <summary> /// Loads the specified modules. /// </summary> /// <param name="moduleInfos"><see cref="ModuleInfo"/>.</param> protected virtual void LoadModules(IEnumerable <ModuleInfo> moduleInfos) { foreach (var moduleInfo in moduleInfos) { if (moduleInfo.State == ModuleState.NotStarted) { try { moduleInfo.State = ModuleState.Initializing; ModuleInitializer.Initialize(moduleInfo); moduleInfo.State = ModuleState.Initialized; LoadModuleCompleted?.Invoke(this, new LoadModuleCompletedEventArgs(moduleInfo, null)); } catch (Exception ex) { LoadModuleCompleted?.Invoke(this, new LoadModuleCompletedEventArgs(moduleInfo, ex)); } } } }
/// <summary> /// Called when the load module is completed. /// </summary> /// <param name="e">The event argument.</param> private void OnLoadModuleCompleted(LoadModuleCompletedEventArgs e) { LoadModuleCompleted.SafeInvoke(this, e); }
/// <summary> /// Raises the <see cref="LoadModuleCompleted"/> event. /// </summary> /// <param name="moduleInfo">The <see cref="IModuleInfo"/> that was just loaded.</param> /// <param name="ex">An <see cref="Exception"/> if any that was thrown during the loading of the <see cref="IModule"/></param> protected void RaiseLoadModuleCompleted(IModuleInfo moduleInfo, Exception ex = null) { LoadModuleCompleted?.Invoke(this, new LoadModuleCompletedEventArgs(moduleInfo, ex)); }
void RaiseLoadModuleCompleted(LoadModuleCompletedEventArgs e) { LoadModuleCompleted?.Invoke(this, e); }
protected void RaiseLoadModuleCompleted(LoadModuleCompletedEventArgs e) { LoadModuleCompleted.Raise(this, e); }
private void RaiseLoadModuleCompleted(LoadModuleCompletedEventArgs e) { LoadModuleCompleted.Raise(this, e); }