public async Task with_an_invalid_url() { var repo = new Mock <IModifiedUrlRepository>(); repo.Setup(r => r.GetOriginalUrl(It.IsAny <string>(), It.IsAny <CancellationToken>())) .ThrowsAsync(new InvalidOperationException()); var controller = new RedirectionController(repo.Object); var result = await controller .RedirectoToOriginalUrl(Guid.NewGuid().ToString()) .ConfigureAwait(false) as RedirectResult; Assert.NotNull(result); Assert.IsTrue(result.Url == "/error"); }
private void lnkSave_OnClick(object sender, EventArgs e) { // Checks for duplicate names var name = txtRedirectName.Text; var nameCount = new RedirectionController().GetRedirectionsByPortal(ModuleContext.PortalId).Count(r => r.Name.ToLower() == name.ToLower()); if (nameCount < 1) { SaveRedirection(); Response.Redirect(Globals.NavigateURL(""), true); } else { UI.Skins.Skin.AddModuleMessage(this, Localization.GetString("DuplicateNameError.Text", LocalResourceFile), ModuleMessage.ModuleMessageType.RedError); } }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); var redirectionController = new RedirectionController(); var redirectUrl = redirectionController.GetMobileSiteUrl(); if (!string.IsNullOrEmpty(redirectUrl)) { lnkPortal.NavigateUrl = redirectUrl; lnkPortal.Text = Localization.GetString("lnkPortal", LocalResourcesFile); } else { this.Visible = false; } }
protected string RenderTooltip(string key, string id) { var redirectionController = new RedirectionController(); var redirect = redirectionController.GetRedirectionById(ModuleContext.PortalId, int.Parse(id)); var tooltip = string.Empty; switch (key) { case "source": var source = (redirect.SourceTabId == -1) ? ModuleContext.PortalAlias.HTTPAlias : TabController.Instance.GetTabsByPortal(ModuleContext.PortalId).First(r => r.Key == redirect.SourceTabId).Value.TabName; tooltip = string.Format(LocalizeString("RedirectTooltipSource.Text"), source); break; case "destination": tooltip = string.Format(LocalizeString("RedirectTooltipDestination.Text"), redirectionController.GetRedirectUrlFromRule(redirect, ModuleContext.PortalId, redirect.SourceTabId)); break; } return(tooltip); }
public async Task with_a_valid_url() { var repo = new Mock <IModifiedUrlRepository>(); var response = new OriginalUrlResponseDto() { OriginalUrl = $"http://{Guid.NewGuid()}" }; repo.Setup(r => r.GetOriginalUrl(It.IsAny <string>(), It.IsAny <CancellationToken>())) .ReturnsAsync(response); var controller = new RedirectionController(repo.Object); var result = await controller .RedirectoToOriginalUrl(Guid.NewGuid().ToString()) .ConfigureAwait(false) as RedirectResult; Assert.NotNull(result); Assert.IsTrue(result.Url == response.OriginalUrl); }
private void SaveRedirection() { IRedirection redirection = new Redirection(); var redirectionController = new RedirectionController(); if (RedirectId > Null.NullInteger) { redirection = redirectionController.GetRedirectionById(ModuleContext.PortalId, RedirectId); } redirection.Name = txtRedirectName.Text; redirection.Enabled = chkEnable.Checked; redirection.PortalId = ModuleContext.PortalId; if (optRedirectSource.SelectedValue == "Tab") { redirection.SourceTabId = int.Parse(cboSourcePage.SelectedValue); redirection.IncludeChildTabs = chkChildPages.Checked; } else { redirection.SourceTabId = -1; redirection.IncludeChildTabs = false; } redirection.Type = (RedirectionType)Enum.Parse(typeof(RedirectionType), optRedirectType.SelectedValue); //Other, save new capabilities if (redirection.Type == RedirectionType.Other) { if (RedirectId > Null.NullInteger) { // Delete capabilities that no longer exist in the grid foreach (var rule in redirection.MatchRules.Where(rule => Capabilities.Where(c => c.Id == rule.Id).Count() < 1)) { redirectionController.DeleteRule(ModuleContext.PortalId, redirection.Id, rule.Id); } } // A new capabilities foreach (var capability in Capabilities.Where(capability => capability.Id == -1)) { redirection.MatchRules.Add(capability); } redirection.MatchRules = Capabilities; } else if (RedirectId > Null.NullInteger && redirection.MatchRules.Count > 0) { foreach (var rule in redirection.MatchRules) { redirectionController.DeleteRule(ModuleContext.PortalId, redirection.Id, rule.Id); } } redirection.TargetType = (TargetType)Enum.Parse(typeof(TargetType), optRedirectTarget.SelectedValue); switch (redirection.TargetType) { case TargetType.Portal: redirection.TargetValue = cboPortal.SelectedItem.Value; break; case TargetType.Tab: redirection.TargetValue = int.Parse(cboTargetPage.SelectedValue); break; case TargetType.Url: redirection.TargetValue = txtTargetUrl.Text; break; } // Save the redirect redirectionController.Save(redirection); }
private void UpdateRules() { var mapCapabilites = CreateMappedCapabilities(); IRedirectionController controller = new RedirectionController(); var redirections = controller.GetAllRedirections(); foreach (var redirection in redirections.Where(redirection => redirection.MatchRules.Count > 0)) { var deletedRules = new List <IMatchRule>(); foreach (var rule in redirection.MatchRules) { if (rule.Capability == "pointing_method") { switch (rule.Expression) { case "clickwheel": rule.Capability = "HasClickWheel"; rule.Expression = "True"; break; case "touchscreen": rule.Capability = "HasTouchScreen"; rule.Expression = "True"; break; default: deletedRules.Add(rule); break; } } else { if (mapCapabilites.ContainsKey(rule.Capability)) { rule.Capability = mapCapabilites[rule.Capability]; switch (rule.Expression) { case "true": rule.Expression = "True"; break; case "false": rule.Expression = "False"; break; } } else { deletedRules.Add(rule); } } } //remove the deleted rules foreach (var deletedRule in deletedRules) { controller.DeleteRule(redirection.PortalId, redirection.Id, deletedRule.Id); redirection.MatchRules.Remove(deletedRule); } controller.Save(redirection); } }
private void SaveRedirection() { IRedirection redirection = new Redirection(); var redirectionController = new RedirectionController(); if (RedirectId > Null.NullInteger) { redirection = redirectionController.GetRedirectionById(ModuleContext.PortalId, RedirectId); } redirection.Name = txtRedirectName.Text; redirection.Enabled = chkEnable.Checked; redirection.PortalId = ModuleContext.PortalId; if (optRedirectSource.SelectedValue == "Tab") { redirection.SourceTabId = cboSourcePage.SelectedItemValueAsInt; redirection.IncludeChildTabs = chkChildPages.Checked; } else { redirection.SourceTabId = -1; redirection.IncludeChildTabs = false; } redirection.Type = (RedirectionType)Enum.Parse(typeof(RedirectionType), optRedirectType.SelectedValue); if (redirection.Type == RedirectionType.SmartPhone && optRedirectType.SelectedValue != "") //save smart phone value to other type with capability match. { if (RedirectId > Null.NullInteger) { // Delete capabilities that no longer exist in the grid foreach (var rule in redirection.MatchRules) { redirectionController.DeleteRule(ModuleContext.PortalId, redirection.Id, rule.Id); } } redirection.Type = RedirectionType.Other; redirection.MatchRules.Add(new MatchRule() { Capability = "IsSmartPhone", Expression = "True" }); } else if (redirection.Type == RedirectionType.Other) //Other, save new capabilities { if (RedirectId > Null.NullInteger) { // Delete capabilities that no longer exist in the grid foreach (var rule in redirection.MatchRules.Where(rule => Capabilities.All(c => c.Id != rule.Id))) { redirectionController.DeleteRule(ModuleContext.PortalId, redirection.Id, rule.Id); } } redirection.MatchRules = Capabilities; } else if (RedirectId > Null.NullInteger && redirection.MatchRules.Count > 0) { foreach (var rule in redirection.MatchRules) { redirectionController.DeleteRule(ModuleContext.PortalId, redirection.Id, rule.Id); } } redirection.TargetType = (TargetType)Enum.Parse(typeof(TargetType), optRedirectTarget.SelectedValue); switch (redirection.TargetType) { case TargetType.Portal: redirection.TargetValue = cboPortal.SelectedItem.Value; break; case TargetType.Tab: redirection.TargetValue = cboTargetPage.SelectedItemValueAsInt; break; case TargetType.Url: redirection.TargetValue = txtTargetUrl.Text; break; } // Save the redirect redirectionController.Save(redirection); }
private void BindRedirection(int redirectId) { // Populating existing redirection settings if (redirectId != Null.NullInteger) { var redirectController = new RedirectionController(); var redirect = redirectController.GetRedirectionById(ModuleContext.PortalId, redirectId); txtRedirectName.Text = redirect.Name; chkEnable.Checked = redirect.Enabled; chkChildPages.Checked = redirect.IncludeChildTabs; var tabs = TabController.Instance.GetTabsByPortal(ModuleContext.PortalId).AsList().Where(IsVisible); var tabInfos = tabs as IList <TabInfo> ?? tabs.ToList(); if (redirect.SourceTabId != -1) { optRedirectSource.SelectedValue = "Tab"; cboSourcePage.SelectedPage = tabInfos.SingleOrDefault(t => t.TabID == redirect.SourceTabId); } else { optRedirectSource.SelectedValue = "Portal"; } if (IsSmartPhoneRedirect(redirect)) { optRedirectType.SelectedValue = "SmartPhone"; } else { optRedirectType.SelectedValue = redirect.Type.ToString(); } optRedirectTarget.SelectedValue = redirect.TargetType.ToString(); //Other, populate Capabilities if (redirect.Type == RedirectionType.Other) { BindRedirectionCapabilties(); } switch (redirect.TargetType) { case TargetType.Portal: if (cboPortal.Items.Count < 1) { optRedirectTarget.SelectedValue = "Tab"; } else { cboPortal.Select(redirect.TargetValue.ToString(), false); } break; case TargetType.Tab: int redirectTargetInt; if (int.TryParse(redirect.TargetValue.ToString(), out redirectTargetInt)) { cboTargetPage.SelectedPage = tabInfos.SingleOrDefault(t => t.TabID == redirectTargetInt); } break; case TargetType.Url: txtTargetUrl.Text = redirect.TargetValue.ToString(); break; } } }