diff --git a/src/Umbraco.Web.Website/ActionResults/RedirectToUmbracoPageResult.cs b/src/Umbraco.Web.Website/ActionResults/RedirectToUmbracoPageResult.cs index d8816c48a9..3d97b893c3 100644 --- a/src/Umbraco.Web.Website/ActionResults/RedirectToUmbracoPageResult.cs +++ b/src/Umbraco.Web.Website/ActionResults/RedirectToUmbracoPageResult.cs @@ -19,105 +19,108 @@ namespace Umbraco.Web.Website.ActionResults public class RedirectToUmbracoPageResult : IActionResult { private IPublishedContent _publishedContent; - private readonly Guid _key; private readonly QueryString _queryString; private readonly IPublishedUrlProvider _publishedUrlProvider; private readonly IUmbracoContextAccessor _umbracoContextAccessor; private string _url; + /// + /// Initializes a new instance of the class. + /// + public RedirectToUmbracoPageResult(Guid key, IPublishedUrlProvider publishedUrlProvider, IUmbracoContextAccessor umbracoContextAccessor) + { + Key = key; + _publishedUrlProvider = publishedUrlProvider; + _umbracoContextAccessor = umbracoContextAccessor; + } + + /// + /// Initializes a new instance of the class. + /// + public RedirectToUmbracoPageResult(Guid key, QueryString queryString, IPublishedUrlProvider publishedUrlProvider, IUmbracoContextAccessor umbracoContextAccessor) + { + Key = key; + _queryString = queryString; + _publishedUrlProvider = publishedUrlProvider; + _umbracoContextAccessor = umbracoContextAccessor; + } + + /// + /// Initializes a new instance of the class. + /// + public RedirectToUmbracoPageResult(IPublishedContent publishedContent, IPublishedUrlProvider publishedUrlProvider, IUmbracoContextAccessor umbracoContextAccessor) + { + _publishedContent = publishedContent; + Key = publishedContent.Key; + _publishedUrlProvider = publishedUrlProvider; + _umbracoContextAccessor = umbracoContextAccessor; + } + + /// + /// Initializes a new instance of the class. + /// + public RedirectToUmbracoPageResult(IPublishedContent publishedContent, QueryString queryString, IPublishedUrlProvider publishedUrlProvider, IUmbracoContextAccessor umbracoContextAccessor) + { + _publishedContent = publishedContent; + Key = publishedContent.Key; + _queryString = queryString; + _publishedUrlProvider = publishedUrlProvider; + _umbracoContextAccessor = umbracoContextAccessor; + } + private string Url { get { - if (!string.IsNullOrWhiteSpace(_url)) return _url; + if (!string.IsNullOrWhiteSpace(_url)) + { + return _url; + } if (PublishedContent is null) + { throw new InvalidOperationException($"Cannot redirect, no entity was found for key {Key}"); + } var result = _publishedUrlProvider.GetUrl(PublishedContent.Id); if (result == "#") + { throw new InvalidOperationException( $"Could not route to entity with key {Key}, the NiceUrlProvider could not generate a URL"); + } _url = result; return _url; } } - public Guid Key => _key; + + public Guid Key { get; } + private IPublishedContent PublishedContent { get { - if (!(_publishedContent is null)) return _publishedContent; + if (!(_publishedContent is null)) + { + return _publishedContent; + } - //need to get the URL for the page - _publishedContent = _umbracoContextAccessor.GetRequiredUmbracoContext().Content.GetById(_key); + // need to get the URL for the page + _publishedContent = _umbracoContextAccessor.GetRequiredUmbracoContext().Content.GetById(Key); - return _publishedContent; + return _publishedContent; } } - /// - /// Creates a new RedirectToUmbracoResult - /// - /// - /// - public RedirectToUmbracoPageResult(Guid key, IPublishedUrlProvider publishedUrlProvider, IUmbracoContextAccessor umbracoContextAccessor) - { - _key = key; - _publishedUrlProvider = publishedUrlProvider; - _umbracoContextAccessor = umbracoContextAccessor; - } - - /// - /// Creates a new RedirectToUmbracoResult - /// - /// - /// - /// - public RedirectToUmbracoPageResult(Guid key, QueryString queryString, IPublishedUrlProvider publishedUrlProvider, IUmbracoContextAccessor umbracoContextAccessor) - { - _key = key; - _queryString = queryString; - _publishedUrlProvider = publishedUrlProvider; - _umbracoContextAccessor = umbracoContextAccessor; - } - - /// - /// Creates a new RedirectToUmbracoResult - /// - /// - /// - /// - public RedirectToUmbracoPageResult(IPublishedContent publishedContent, IPublishedUrlProvider publishedUrlProvider, IUmbracoContextAccessor umbracoContextAccessor) - { - _publishedContent = publishedContent; - _key = publishedContent.Key; - _publishedUrlProvider = publishedUrlProvider; - _umbracoContextAccessor = umbracoContextAccessor; - } - - /// - /// Creates a new RedirectToUmbracoResult - /// - /// - /// - /// - /// - public RedirectToUmbracoPageResult(IPublishedContent publishedContent, QueryString queryString, IPublishedUrlProvider publishedUrlProvider, IUmbracoContextAccessor umbracoContextAccessor) - { - _publishedContent = publishedContent; - _key = publishedContent.Key; - _queryString = queryString; - _publishedUrlProvider = publishedUrlProvider; - _umbracoContextAccessor = umbracoContextAccessor; - } - + /// public Task ExecuteResultAsync(ActionContext context) { - if (context is null) throw new ArgumentNullException(nameof(context)); + if (context is null) + { + throw new ArgumentNullException(nameof(context)); + } var httpContext = context.HttpContext; var ioHelper = httpContext.RequestServices.GetRequiredService();