Injecting a service interface instead of calling an old web service on Our

This commit is contained in:
elitsa
2020-02-18 14:45:49 +01:00
parent 1574263c69
commit 166c04b1b6
2 changed files with 29 additions and 21 deletions

View File

@@ -2,11 +2,14 @@
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using System.Web.Http.Filters;
using Semver;
using Umbraco.Core;
using Umbraco.Core.Composing;
using Umbraco.Core.Configuration;
using Umbraco.Core.Models;
using Umbraco.Core.Services;
using Umbraco.Web.Models;
using Umbraco.Web.Mvc;
@@ -15,8 +18,17 @@ namespace Umbraco.Web.Editors
[PluginController("UmbracoApi")]
public class UpdateCheckController : UmbracoAuthorizedJsonController
{
private readonly IUpgradeService _upgradeService;
public UpdateCheckController() { }
public UpdateCheckController(IUpgradeService upgradeService)
{
_upgradeService = upgradeService;
}
[UpdateCheckResponseFilter]
public UpgradeCheckResponse GetCheck()
public async Task<UpgradeCheckResponse> GetCheck()
{
var updChkCookie = Request.Headers.GetCookies("UMB_UPDCHK").FirstOrDefault();
var updateCheckCookie = updChkCookie != null ? updChkCookie["UMB_UPDCHK"].Value : "";
@@ -24,14 +36,11 @@ namespace Umbraco.Web.Editors
{
try
{
var check = new org.umbraco.update.CheckForUpgrade { Timeout = 2000 };
var version = new SemVersion(UmbracoVersion.Current.Major, UmbracoVersion.Current.Minor,
UmbracoVersion.Current.Build, UmbracoVersion.Comment);
var result = await _upgradeService.CheckUpgrade(version);
var result = check.CheckUpgrade(UmbracoVersion.Current.Major,
UmbracoVersion.Current.Minor,
UmbracoVersion.Current.Build,
UmbracoVersion.Comment);
return new UpgradeCheckResponse(result.UpgradeType.ToString(), result.Comment, result.UpgradeUrl);
return new UpgradeCheckResponse(result.UpgradeType, result.Comment, result.UpgradeUrl);
}
catch (System.Net.WebException)
{

View File

@@ -10,8 +10,10 @@ using Umbraco.Core.Configuration;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Migrations.Install;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.SqlSyntax;
using Umbraco.Core.Services;
using Umbraco.Web.Composing;
using Umbraco.Web.Install.Models;
@@ -24,16 +26,18 @@ namespace Umbraco.Web.Install
private readonly HttpContextBase _httpContext;
private readonly ILogger _logger;
private readonly IGlobalSettings _globalSettings;
private readonly IInstallationService _installationService;
private InstallationType? _installationType;
public InstallHelper(IUmbracoContextAccessor umbracoContextAccessor,
DatabaseBuilder databaseBuilder,
ILogger logger, IGlobalSettings globalSettings)
ILogger logger, IGlobalSettings globalSettings, IInstallationService installationService)
{
_httpContext = umbracoContextAccessor.UmbracoContext.HttpContext;
_logger = logger;
_globalSettings = globalSettings;
_databaseBuilder = databaseBuilder;
_installationService = installationService;
}
public InstallationType GetInstallationType()
@@ -70,18 +74,13 @@ namespace Umbraco.Web.Install
dbProvider = GetDbProviderString(Current.SqlContext);
}
var check = new org.umbraco.update.CheckForUpgrade();
check.Install(installId,
IsBrandNewInstall == false,
isCompleted,
DateTime.Now,
UmbracoVersion.Current.Major,
UmbracoVersion.Current.Minor,
UmbracoVersion.Current.Build,
UmbracoVersion.Comment,
errorMsg,
userAgent,
dbProvider);
var installLog = new InstallLog(installId: installId, isUpgrade: IsBrandNewInstall == false,
installCompleted: isCompleted, timestamp: DateTime.Now, versionMajor: UmbracoVersion.Current.Major,
versionMinor: UmbracoVersion.Current.Minor, versionPatch: UmbracoVersion.Current.Build,
versionComment: UmbracoVersion.Comment, error: errorMsg, userAgent: userAgent,
dbProvider: dbProvider);
_installationService.Install(installLog);
}
catch (Exception ex)
{