Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }