示例#1
0
 public int[] SelectedCityIdsByName(string nameQuery)
 {
     if (ShippingCountriesHierarchies.Any())
     {
         return(SelectedIdsForType(TerritoryAdministrativeType.City, nameQuery));
     }
     return(new int[] { });
 }
        public TerritoryHierarchyPart GetConfiguredHierarchy(string culture = "")
        {
            if (string.IsNullOrWhiteSpace(culture))
            {
                culture = _workContextAccessor.GetContext().CurrentCulture;
            }
            return(GetFromCache(_hierarchyForCultureBaseCacheKey + culture, () => {
                var localizedHierarchy = ShippingCountriesHierarchies
                                         .FirstOrDefault(thp =>
                                                         // localizable
                                                         thp.Is <LocalizationPart>()
                                                         // desired culture
                                                         && thp.As <LocalizationPart>()
                                                         .Culture.Culture
                                                         .Equals(culture, StringComparison.InvariantCultureIgnoreCase));

                return localizedHierarchy ?? ShippingCountriesHierarchy;
            }));
        }
        private int[] SelectedIdsForType(TerritoryAdministrativeType adminType)
        {
            var hierarchyIds = ShippingCountriesHierarchies
                               .Select(h => h.Record.Id)
                               .ToArray();

            return(_contentManager
                   .Query <TerritoryAdministrativeTypePart, TerritoryAdministrativeTypePartRecord>()
                   .Where(tatpr => tatpr.AdministrativeType == adminType)
                   .Join <TerritoryPartRecord>()
                   .Where(tpr =>
                          hierarchyIds
                          .Contains(tpr.Hierarchy.Id))
                   .List()
                   .Where(tp => tp.Record.TerritoryInternalRecord != null)
                   .Select(tp => tp.Record.TerritoryInternalRecord.Id)
                   .Distinct()
                   .ToArray());
        }