RedirectToUmbracoPageResult - Extended to allow a Guid (#8139)

This commit is contained in:
Poornima Nayar
2020-08-31 21:06:04 +01:00
committed by GitHub
parent 47dc631ca0
commit c1e2f8f974
2 changed files with 112 additions and 2 deletions

View File

@@ -17,6 +17,7 @@ namespace Umbraco.Web.Mvc
{
private IPublishedContent _publishedContent;
private readonly int _pageId;
private readonly Guid _key;
private NameValueCollection _queryStringValues;
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
private string _url;
@@ -49,14 +50,25 @@ namespace Umbraco.Web.Mvc
get { return _pageId; }
}
public Guid Key
{
get { return _key; }
}
public IPublishedContent PublishedContent
{
get
{
if (_publishedContent != null) return _publishedContent;
//need to get the URL for the page
_publishedContent = Current.UmbracoContext.Content.GetById(_pageId);
if (_pageId != default(int))
{
_publishedContent = Current.UmbracoContext.Content.GetById(_pageId);
}
else if (_key != default(Guid))
{
_publishedContent = Current.UmbracoContext.Content.GetById(_key);
}
return _publishedContent;
}
@@ -91,6 +103,35 @@ namespace Umbraco.Web.Mvc
{
}
/// <summary>
/// Creates a new RedirectToUmbracoResult
/// </summary>
/// <param name="key"></param>
public RedirectToUmbracoPageResult(Guid key)
: this(key, Current.UmbracoContextAccessor)
{
}
/// <summary>
/// Creates a new RedirectToUmbracoResult
/// </summary>
/// <param name="key"></param>
/// <param name="queryStringValues"></param>
public RedirectToUmbracoPageResult(Guid key, NameValueCollection queryStringValues)
: this(key, queryStringValues, Current.UmbracoContextAccessor)
{
}
/// <summary>
/// Creates a new RedirectToUmbracoResult
/// </summary>
/// <param name="key"></param>
/// <param name="queryString"></param>
public RedirectToUmbracoPageResult(Guid key, string queryString)
: this(key, queryString, Current.UmbracoContextAccessor)
{
}
/// <summary>
/// Creates a new RedirectToUmbracoResult
/// </summary>
@@ -157,6 +198,43 @@ namespace Umbraco.Web.Mvc
_umbracoContextAccessor = umbracoContextAccessor;
}
/// <summary>
/// Creates a new RedirectToUmbracoResult
/// </summary>
/// <param name="key"></param>
/// <param name="umbracoContextAccessor"></param>
public RedirectToUmbracoPageResult(Guid key, IUmbracoContextAccessor umbracoContextAccessor)
{
_key = key;
_umbracoContextAccessor = umbracoContextAccessor;
}
/// <summary>
/// Creates a new RedirectToUmbracoResult
/// </summary>
/// <param name="key"></param>
/// <param name="queryStringValues"></param>
/// <param name="umbracoContextAccessor"></param>
public RedirectToUmbracoPageResult(Guid key, NameValueCollection queryStringValues, IUmbracoContextAccessor umbracoContextAccessor)
{
_key = key;
_queryStringValues = queryStringValues;
_umbracoContextAccessor = umbracoContextAccessor;
}
/// <summary>
/// Creates a new RedirectToUmbracoResult
/// </summary>
/// <param name="key"></param>
/// <param name="queryString"></param>
/// <param name="umbracoContextAccessor"></param>
public RedirectToUmbracoPageResult(Guid key, string queryString, IUmbracoContextAccessor umbracoContextAccessor)
{
_key = key;
_queryStringValues = ParseQueryString(queryString);
_umbracoContextAccessor = umbracoContextAccessor;
}
/// <summary>
/// Creates a new RedirectToUmbracoResult
/// </summary>

View File

@@ -56,6 +56,38 @@ namespace Umbraco.Web.Mvc
return new RedirectToUmbracoPageResult(pageId, queryString, Current.UmbracoContextAccessor);
}
/// <summary>
/// Redirects to the Umbraco page with the given id
/// </summary>
/// <param name="pageId"></param>
/// <returns></returns>
protected RedirectToUmbracoPageResult RedirectToUmbracoPage(Guid key)
{
return new RedirectToUmbracoPageResult(key, Current.UmbracoContextAccessor);
}
/// <summary>
/// Redirects to the Umbraco page with the given id and passes provided querystring
/// </summary>
/// <param name="pageId"></param>
/// <param name="queryStringValues"></param>
/// <returns></returns>
protected RedirectToUmbracoPageResult RedirectToUmbracoPage(Guid key, NameValueCollection queryStringValues)
{
return new RedirectToUmbracoPageResult(key, queryStringValues, Current.UmbracoContextAccessor);
}
/// <summary>
/// Redirects to the Umbraco page with the given id and passes provided querystring
/// </summary>
/// <param name="pageId"></param>
/// <param name="queryString"></param>
/// <returns></returns>
protected RedirectToUmbracoPageResult RedirectToUmbracoPage(Guid key, string queryString)
{
return new RedirectToUmbracoPageResult(key, queryString, Current.UmbracoContextAccessor);
}
/// <summary>
/// Redirects to the Umbraco page with the given id
/// </summary>