internal static string TryGetApplicationUrl(IUmbracoSettingsSection settings, ILogger logger, IGlobalSettings globalSettings, IServerRegistrar serverRegistrar) { // try umbracoSettings:settings/web.routing/@umbracoApplicationUrl // which is assumed to: // - end with SystemDirectories.Umbraco // - contain a scheme // - end or not with a slash, it will be taken care of // eg "http://www.mysite.com/umbraco" var url = settings.WebRouting.UmbracoApplicationUrl; if (url.IsNullOrWhiteSpace() == false) { var umbracoApplicationUrl = url.TrimEnd(Constants.CharArrays.ForwardSlash); logger.Info(TypeOfApplicationUrlHelper, "ApplicationUrl: {UmbracoAppUrl} (using web.routing/@umbracoApplicationUrl)", umbracoApplicationUrl); return(umbracoApplicationUrl); } // try the server registrar // which is assumed to return a URL that: // - end with SystemDirectories.Umbraco // - contain a scheme // - end or not with a slash, it will be taken care of // eg "http://www.mysite.com/umbraco" url = serverRegistrar.GetCurrentServerUmbracoApplicationUrl(); if (url.IsNullOrWhiteSpace() == false) { var umbracoApplicationUrl = url.TrimEnd(Constants.CharArrays.ForwardSlash); logger.Info(TypeOfApplicationUrlHelper, "ApplicationUrl: {UmbracoAppUrl} (IServerRegistrar)", umbracoApplicationUrl); return(umbracoApplicationUrl); } // else give up... return(null); }
internal static string TryGetApplicationUrl(IUmbracoSettingsSection settings, ILogger logger, IGlobalSettings globalSettings, IServerRegistrar serverRegistrar) { // try umbracoSettings:settings/web.routing/@umbracoApplicationUrl // which is assumed to: // - end with SystemDirectories.Umbraco // - contain a scheme // - end or not with a slash, it will be taken care of // eg "http://www.mysite.com/umbraco" var url = settings.WebRouting.UmbracoApplicationUrl; if (url.IsNullOrWhiteSpace() == false) { var umbracoApplicationUrl = url.TrimEnd('/'); logger.Info(TypeOfApplicationUrlHelper, "ApplicationUrl: {UmbracoAppUrl} (using web.routing/@umbracoApplicationUrl)", umbracoApplicationUrl); return(umbracoApplicationUrl); } // try umbracoSettings:settings/scheduledTasks/@baseUrl // which is assumed to: // - end with SystemDirectories.Umbraco // - NOT contain any scheme (because, legacy) // - end or not with a slash, it will be taken care of // eg "mysite.com/umbraco" url = settings.ScheduledTasks.BaseUrl; if (url.IsNullOrWhiteSpace() == false) { var ssl = globalSettings.UseHttps ? "s" : ""; url = "http" + ssl + "://" + url; var umbracoApplicationUrl = url.TrimEnd('/'); logger.Info(TypeOfApplicationUrlHelper, "ApplicationUrl: {UmbracoAppUrl} (using scheduledTasks/@baseUrl)", umbracoApplicationUrl); return(umbracoApplicationUrl); } // try the server registrar // which is assumed to return a url that: // - end with SystemDirectories.Umbraco // - contain a scheme // - end or not with a slash, it will be taken care of // eg "http://www.mysite.com/umbraco" url = serverRegistrar.GetCurrentServerUmbracoApplicationUrl(); if (url.IsNullOrWhiteSpace() == false) { var umbracoApplicationUrl = url.TrimEnd('/'); logger.Info(TypeOfApplicationUrlHelper, "ApplicationUrl: {UmbracoAppUrl} (IServerRegistrar)", umbracoApplicationUrl); return(umbracoApplicationUrl); } // else give up... return(null); }