mirror of
https://github.com/oqtane/oqtane.framework.git
synced 2025-05-27 15:23:06 +00:00
Merge pull request #2102 from sbwalker/dev
allow for multiple upgrade classes
This commit is contained in:
commit
5380b12294
@ -673,31 +673,20 @@ namespace Oqtane.Infrastructure
|
|||||||
{
|
{
|
||||||
var result = new Installation { Success = false, Message = string.Empty };
|
var result = new Installation { Success = false, Message = string.Empty };
|
||||||
|
|
||||||
// find upgrade type
|
|
||||||
Type upgradetype = null;
|
|
||||||
var assemblies = AppDomain.CurrentDomain.GetOqtaneAssemblies();
|
|
||||||
foreach (Assembly assembly in assemblies)
|
|
||||||
{
|
|
||||||
var types = assembly.GetTypes().Where(item => item.GetInterfaces().Contains(typeof(IUpgradeable)));
|
|
||||||
if (types.Any())
|
|
||||||
{
|
|
||||||
upgradetype = types.First();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// execute upgrade
|
|
||||||
if (upgradetype != null)
|
|
||||||
{
|
|
||||||
var obj = Activator.CreateInstance(upgradetype) as IUpgradeable;
|
|
||||||
if (obj != null)
|
|
||||||
{
|
|
||||||
using (var scope = _serviceScopeFactory.CreateScope())
|
using (var scope = _serviceScopeFactory.CreateScope())
|
||||||
{
|
{
|
||||||
var aliases = scope.ServiceProvider.GetRequiredService<IAliasRepository>();
|
var aliases = scope.ServiceProvider.GetRequiredService<IAliasRepository>();
|
||||||
var tenantManager = scope.ServiceProvider.GetRequiredService<ITenantManager>();
|
var tenantManager = scope.ServiceProvider.GetRequiredService<ITenantManager>();
|
||||||
var sites = scope.ServiceProvider.GetRequiredService<ISiteRepository>();
|
var sites = scope.ServiceProvider.GetRequiredService<ISiteRepository>();
|
||||||
|
|
||||||
|
var assemblies = AppDomain.CurrentDomain.GetOqtaneAssemblies();
|
||||||
|
foreach (Assembly assembly in assemblies)
|
||||||
|
{
|
||||||
|
foreach (var type in assembly.GetTypes().Where(item => item.GetInterfaces().Contains(typeof(IUpgradeable))))
|
||||||
|
{
|
||||||
|
var obj = Activator.CreateInstance(type) as IUpgradeable;
|
||||||
|
if (obj != null)
|
||||||
|
{
|
||||||
foreach (var alias in aliases.GetAliases().ToList().Where(item => item.IsDefault))
|
foreach (var alias in aliases.GetAliases().ToList().Where(item => item.IsDefault))
|
||||||
{
|
{
|
||||||
var versions = obj.GetVersions(alias);
|
var versions = obj.GetVersions(alias);
|
||||||
@ -728,6 +717,7 @@ namespace Oqtane.Infrastructure
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(result.Message))
|
if (string.IsNullOrEmpty(result.Message))
|
||||||
{
|
{
|
||||||
|
@ -12,7 +12,7 @@ namespace Oqtane.Infrastructure
|
|||||||
switch (alias.Name)
|
switch (alias.Name)
|
||||||
{
|
{
|
||||||
case "localhost:44357":
|
case "localhost:44357":
|
||||||
// return the list of official release versions for the specific site
|
// return the comma delimited list of official release versions for the specific site
|
||||||
versions = "1.0.0";
|
versions = "1.0.0";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -25,6 +25,7 @@ namespace Oqtane.Infrastructure
|
|||||||
switch (alias.Name)
|
switch (alias.Name)
|
||||||
{
|
{
|
||||||
case "localhost:44357":
|
case "localhost:44357":
|
||||||
|
// the version cases should match the list of versions returned above
|
||||||
switch (version)
|
switch (version)
|
||||||
{
|
{
|
||||||
case "1.0.0":
|
case "1.0.0":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user