/// <summary> /// Test whether any page exists at a content address's url (ignores non-DataRoutes for this purpose) /// </summary> /// <param name="address">Content address</param> /// <returns>True if a page exists there</returns> public bool AddressOccupied(Address address) { var urls = ContentMap.Instance .GetUrls(address); RouteData existingRd = urls .Select(url => RouteX.GetRouteDataByUrl(url + "?$mode=bypass")) // $mode=bypass means the request is never diverted to an editor .FirstOrDefault(rd => rd != null && rd.Route != null && rd.Route is DataRoute && !RouteIsNotOccupied(rd)); return(existingRd != null); }
/// <summary> /// Test whether any page exists at a content address's url /// </summary> /// <param name="address">Content address</param> /// <returns>True if a page exists there</returns> public bool AddressOccupied(Address address) { var urls = ContentMap.Instance .GetUrls(address); RouteData existingRd = urls .Select(url => url.Replace("??", "_").Replace("?", "_")) .Select(url => RouteX.GetRouteDataByUrl(url + "?$mode=bypass")) // $mode=bypass means the request is never diverted to an editor .FirstOrDefault(rd => !RouteIsNotOccupied(rd)); return(existingRd != null && existingRd.Routers.Count > 0); }
public override object CurrentValue(VersioningMode mode) { var rd = RouteX.CurrentRouteData(); string locale; if (rd == null || rd.Values[localeRouteKey] == null) { locale = defaultLocale; } else { var routeLocale = (string)rd.Values[localeRouteKey]; locale = routeLocaleFromLocale(routeLocale); } return(locale); }
public override void SetCurrentVersion(VersioningMode mode, ItemVersion version) { var rd = RouteX.CurrentRouteData(); string locale; if (rd == null || rd.Values[localeRouteKey] == null) { locale = defaultLocale; } else { var routeLocale = (string)rd.Values[localeRouteKey]; locale = routeLocaleFromLocale(routeLocale); } version[VersionKey] = locale; Thread.CurrentThread.CurrentCulture = new CultureInfo(locale); Thread.CurrentThread.CurrentUICulture = new CultureInfo(locale); }
public override string GetVersionUrl(string currUrl, ItemVersion version) { if (!version.ContainsKey(VersionKey)) { return(currUrl); } string locale = (string)version[VersionKey]; RouteData rd = RouteX.GetRouteDataByUrl(currUrl); string routeLocale = routeLocaleFromLocale(locale); if (!rd.Values.ContainsKey(localeRouteKey) || (string)rd.Values[localeRouteKey] == routeLocale) { return(currUrl); } rd.Values[localeRouteKey] = routeLocale; new string[] { "data", "originalAction", "originalController", "originalArea" } .Where(k => rd.Values.ContainsKey(k)) .Do(k => rd.Values.Remove(k)); string url = RouteX.CreateUrlFromRouteValues(rd.Values); return(url); }