File: D:/HostingSpaces/TDijk1/erp-apps.eu/wwwroot/CMSWebParts/Pux/Redirect/RedirectFromAlias.ascx.cs
using CMS.Helpers;
using CMS.PortalControls;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
public partial class CMSWebParts_Pux_Redirect_RedirectFromAlias : CMSAbstractWebPart
{
public string DefaultDomain
{
get
{
return ValidationHelper.GetString(this.GetValue("DefaultDomain"), "");
}
set
{
this.SetValue("DefaultDomain", value);
}
}
public string URLs
{
get
{
return ValidationHelper.GetString(this.GetValue("URLs"), "/%");
}
set
{
this.SetValue("URLs", value);
}
}
public string Domains
{
get
{
return ValidationHelper.GetString(this.GetValue("Domains"), "/%");
}
set
{
this.SetValue("Domains", value);
}
}
public bool AddOldDomainQueryString
{
get
{
return ValidationHelper.GetBoolean(this.GetValue("AddOldDomainQueryString"), false);
}
set
{
this.SetValue("AddOldDomainQueryString", value);
}
}
private string RemoveHttp(string url)
{
return url.ToLowerInvariant().Replace("http://", "").Replace("https://", "");
}
//Dictionary<string, string> _dictURLs = null;
public Dictionary<string, string> RedirectDictionary(string urls)
{
Dictionary<string, string> _dictURLs = null;
if (_dictURLs == null)
{
_dictURLs = new Dictionary<string, string>();
foreach (string url in urls.Split('\n'))
{
if (url.Contains(" "))
{
char[] charsToTrim = { '/', '\r', '\n' };
string[] s = url.Split(' ');
if (s[0].Trim(charsToTrim).Contains("#!"))
{
pnlScript.Visible = true;
ltrScript.Text += String.Format("if (puxUrl == \"{0}\") {{ window.location.replace(\"{1}\"); }}", RemoveHttp(s[0].Trim(charsToTrim)), s[1].Trim(charsToTrim)).Trim();
}
else
{
string key = RemoveHttp(s[0].Trim(charsToTrim));
if (!_dictURLs.ContainsKey(key))
{
_dictURLs.Add(key, s[1].Trim(charsToTrim));
}
}
}
}
}
return _dictURLs;
}
public Dictionary<string, string> DictURLs
{
get
{
return RedirectDictionary(URLs);
}
}
public Dictionary<string, string> DictDomains
{
get
{
return RedirectDictionary(Domains);
}
}
protected void Page_Load(object sender, EventArgs e)
{
char[] charsToTrim = { '/', '\r', '\n' };
string oldURL = (URLHelper.GetFullApplicationUrl() + Request.RawUrl).ToLowerInvariant().Replace("http://", "").Replace("https://", "").Trim(charsToTrim);
string oldDomain = URLHelper.GetDomain(URLHelper.GetFullApplicationUrl());
Dictionary<string, string> dictURLs = DictURLs;
if (dictURLs != null && dictURLs.ContainsKey(oldURL))
{
string newUrl = URLHelper.ResolveUrl(dictURLs[oldURL]).Trim();
if (AddOldDomainQueryString)
{
newUrl = URLHelper.AddParameterToUrl(newUrl, "oldURL", URLHelper.GetFullApplicationUrl().ToLowerInvariant().Replace("http://", "").Replace("https://", ""));
}
URLHelper.RedirectPermanent(newUrl, CurrentSite.SiteName);
}
Dictionary<string, string> dictDomains = DictDomains;
if (dictDomains != null && dictDomains.ContainsKey(oldDomain))
{
string newUrl = (URLHelper.GetFullApplicationUrl() + Request.RawUrl).Replace(oldDomain, DictDomains[oldDomain]);
URLHelper.RedirectPermanent(newUrl, CurrentSite.SiteName);
}
}
}