Files
Umbraco-CMS/src/Umbraco.Web.Common/AspNetCore/AspNetCoreBackOfficeInfo.cs
2021-08-17 11:09:53 +02:00

39 lines
1.3 KiB
C#

using Microsoft.Extensions.Options;
using Umbraco.Cms.Core;
using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Core.Hosting;
using Umbraco.Cms.Core.Routing;
using static Umbraco.Cms.Core.Constants;
namespace Umbraco.Cms.Web.Common.AspNetCore
{
public class AspNetCoreBackOfficeInfo : IBackOfficeInfo
{
private readonly IOptionsMonitor<GlobalSettings> _globalSettings;
private readonly IHostingEnvironment _hostingEnvironment;
private string _getAbsoluteUrl;
public AspNetCoreBackOfficeInfo(IOptionsMonitor<GlobalSettings> globalSettings, IHostingEnvironment hostingEnviroment)
{
_globalSettings = globalSettings;
_hostingEnvironment = hostingEnviroment;
}
public string GetAbsoluteUrl
{
get
{
if (_getAbsoluteUrl is null)
{
if(_hostingEnvironment.ApplicationMainUrl is null)
{
return "";
}
_getAbsoluteUrl = WebPath.Combine(_hostingEnvironment.ApplicationMainUrl.ToString(), _globalSettings.CurrentValue.UmbracoPath.TrimStart(CharArrays.TildeForwardSlash));
}
return _getAbsoluteUrl;
}
}
}
}