public Guid UpsertPluginAssembly(Assembly pluginAssembly, AssemblyInfo assemblyInfo, string solutionName, RegistrationTypeEnum registrationType) { Guid Id = pluginAssembly?.Id ?? Guid.Empty; if (Id == Guid.Empty) { Id = pluginRepository.GetPluginAssemblyId(assemblyInfo.AssemblyName); logWarning?.Invoke($"Extracted id using plugin assembly name {assemblyInfo.AssemblyName}"); } var assembly = new PluginAssembly() { Version = assemblyInfo.Version, Content = assemblyInfo.Content, Name = assemblyInfo.AssemblyName, SourceTypeEnum = PluginAssembly_SourceType.Database, IsolationModeEnum = PluginAssembly_IsolationMode.Sandbox, }; if (pluginAssembly != null) { assembly.SourceTypeEnum = pluginAssembly.SourceType; assembly.IsolationModeEnum = pluginAssembly.IsolationMode; } if (!Id.Equals(Guid.Empty) && registrationType == RegistrationTypeEnum.Reset) { DeleteObjectWithDependencies(Id, ComponentType.PluginAssembly); } logVerbose?.Invoke($"Trying to upsert {assemblyInfo.AssemblyName} / {Id}"); Id = ExecuteRequest(registrationType, Id, assembly); AddComponentToSolution(Id, ComponentType.PluginAssembly, solutionName); return(Id); }