Beispiel #1
0
        private static IDictionary <string, string> GetDomainDatas(Implementation.Domain domain1)
        {
            var domainRegex1 = CreateRegexDomain(domain1.Path);
            var domainMatch1 = domainRegex1.Match(domain1.Path.Replace("{", "").Replace("}", ""));
            IDictionary <string, string> data1 = new Dictionary <string, string>();

            GetDatas(data1, domainRegex1, domainMatch1);
            return(data1);
        }
Beispiel #2
0
        /// <summary>
        ///     Récupère le chemin associé au domaine
        /// </summary>
        /// <param name="url"></param>
        /// <param name="domain"></param>
        /// <param name="domainDatas"> </param>
        /// <returns></returns>
        private static string GetRoutePath(string url, Implementation.Domain domain, Dictionary <string, string> domainDatas)
        {
            var routePath  = GetPath(url, domainDatas);
            var domainPath = string.Empty;

            if (!string.IsNullOrEmpty(domain.Path))
            {
                domainPath = GetPath(domain.Path, domainDatas);
            }

            if (!string.IsNullOrEmpty(routePath))
            {
                routePath = routePath.ReplaceIgnoreCase(domainPath, string.Empty).TrimStart('/');
            }

            return(routePath);
        }
Beispiel #3
0
        private async Task <bool> IsHomePage(Implementation.Domain domain, IDictionary <string, string> domainDatas,
                                             IDictionary <string, string> routeDatas)
        {
            var siteId = string.Empty;

            if (!string.IsNullOrEmpty(domain.SiteId))
            {
                siteId = domain.SiteId;
            }
            else if (domainDatas.Count > 0)
            {
                siteId = await _routeProvider.GetSiteIdAsync(domainDatas, domain.DomainMasterId);
            }

            if (string.IsNullOrEmpty(siteId))
            {
                return(false);
            }

            return(await IsHomePage(siteId, routeDatas));
        }
Beispiel #4
0
        /// <summary>
        ///     Récupère un domaine du même type si {culture} présent dans le domain 1 il faut que {culture} soit présent dans le
        ///     domain 2
        /// </summary>
        /// <param name="domain1"></param>
        /// <param name="domainDatas"> </param>
        /// <param name="domain2"></param>
        /// <returns></returns>
        private static bool IsSameDomainType(IDictionary <string, string> domainDatas, Implementation.Domain domain2)
        {
            var data2 = GetDomainDatas(domain2);

            foreach (var key in data2.Keys)
            {
                if (!domainDatas.ContainsKey(key))
                {
                    return(false);
                }
                if (domain2.ExcludedDomainData != null && domain2.ExcludedDomainData.ContainsKey(key) &&
                    domain2.ExcludedDomainData[key] == domainDatas[key])
                {
                    return(false);
                }
            }

            return(true);
        }