示例#1
0
        public AddressConfigurationAdminController(
            IAuthorizer authorizer,
            ISiteService siteService,
            IContentManager contentManager,
            ITransactionManager transactionManager,
            INotifier notifier,
            IAddressConfigurationService addressConfigurationService,
            IAddressConfigurationSettingsService addressSettingsService,
            ITerritoryPartRecordService territoryPartRecordService)
        {
            _authorizer                  = authorizer;
            _siteService                 = siteService;
            _contentManager              = contentManager;
            _transactionManager          = transactionManager;
            _notifier                    = notifier;
            _addressConfigurationService = addressConfigurationService;
            _addressSettingsService      = addressSettingsService;
            _territoryPartRecordService  = territoryPartRecordService;

            T = NullLocalizer.Instance;

            administrativeTypeNames = new Dictionary <TerritoryAdministrativeType, string>();
            administrativeTypeNames.Add(TerritoryAdministrativeType.None, T("Undefined").Text);
            administrativeTypeNames.Add(TerritoryAdministrativeType.Country, T("Country").Text);
            administrativeTypeNames.Add(TerritoryAdministrativeType.Province, T("Province").Text);
            administrativeTypeNames.Add(TerritoryAdministrativeType.City, T("City").Text);
        }
示例#2
0
 public AddressConfigurationTerritoryViewModel(
     TerritoryPart part,
     IEnumerable <int> countries,
     IEnumerable <int> provinces,
     IEnumerable <int> cities,
     AddressConfigurationTerritoryViewModel parent,
     ITerritoryPartRecordService _territoryPartRecordService)
     : this(part, countries, provinces, cities, _territoryPartRecordService)
 {
     Parent = parent;
 }
示例#3
0
 public AddressConfigurationSiteSettingsPartDriver(
     IContentManager contentManager,
     IAddressConfigurationService addressConfigurationService,
     ITerritoriesRepositoryService territoriesRepositoryService,
     IAddressConfigurationSettingsService addressConfigurationSettingsService,
     ITerritoryPartRecordService territoryPartRecordService)
 {
     _contentManager = contentManager;
     _addressConfigurationService         = addressConfigurationService;
     _territoriesRepositoryService        = territoriesRepositoryService;
     _addressConfigurationSettingsService = addressConfigurationSettingsService;
     _territoryPartRecordService          = territoryPartRecordService;
 }
示例#4
0
        public DestinationTerritoryCriteria(
            ITerritoriesRepositoryService territoriesRepositoryService,
            IAddressConfigurationService addressConfigurationService,
            ITerritoryPartRecordService territoryPartRecordService,
            IAddressConfigurationSettingsService addressConfigurationSettingsService)
        {
            _territoriesRepositoryService        = territoriesRepositoryService;
            _addressConfigurationService         = addressConfigurationService;
            _territoryPartRecordService          = territoryPartRecordService;
            _addressConfigurationSettingsService = addressConfigurationSettingsService;

            T = NullLocalizer.Instance;
        }
示例#5
0
        public AddressConfigurationService(
            IAddressConfigurationSettingsService settingsService,
            ITerritoriesService territoriesService,
            IContentManager contentManager,
            ITerritoriesRepositoryService territoriesRepositoryService,
            IRepository <TerritoryInternalRecord> territoryInternalRecord,
            ITerritoryPartRecordService territoryPartRecordService)
        {
            _settingsService              = settingsService;
            _territoriesService           = territoriesService;
            _contentManager               = contentManager;
            _territoriesRepositoryService = territoriesRepositoryService;
            _territoryInternalRecord      = territoryInternalRecord;
            _territoryPartRecordService   = territoryPartRecordService;

            T = NullLocalizer.Instance;
        }
示例#6
0
        ///// <summary>
        ///// Dictionary for ISO codes for territories. We may be able to set codes for all
        ///// territories, but the intent for now is to have it for countries only.
        ///// Key: Id of TerritoryInternalRecord
        ///// Value: Alpha-2 ISO 3166-1 code
        ///// </summary>
        //public IDictionary<int, string> TerritoryISOCode { get; set; }

        public void InitializeTerritories(ITerritoryPartRecordService _territoryPartRecordService)
        {
            TopLevel = CountriesHierarchy.TopLevel
                       // Create the top level and recursively create the whole hierarchy
                       .Select(ci => {
                var tp = ci.As <TerritoryPart>();
                return(tp != null
                        ? new AddressConfigurationTerritoryViewModel(
                           tp, SelectedCountries, SelectedProvinces, SelectedCities, _territoryPartRecordService)
                        : null);
            })
                       // remove nulls (sanity check)
                       .Where(tvm => tvm != null);
            // Initialize the dictionaries we'll use to edit the configuration
            TerritoryTypeMap = new Dictionary <int, TerritoryAdministrativeType>();

            foreach (var territory in _territoryPartRecordService.GetHierarchyTerritories(CountriesHierarchy))
            {
                var tType      = TerritoryAdministrativeType.None;
                var internalId = territory.TerritoryInternalRecord.Id;
                if (SelectedCountries.Contains(internalId))
                {
                    tType = TerritoryAdministrativeType.Country;
                }
                else if (SelectedProvinces.Contains(internalId))
                {
                    tType = TerritoryAdministrativeType.Province;
                }
                else if (SelectedCities.Contains(internalId))
                {
                    tType = TerritoryAdministrativeType.City;
                }
                TerritoryTypeMap.Add(internalId, tType);
                //var iso = CountryCodes
                //    // default is a struct with ISOCode = null
                //    .FirstOrDefault(cc => cc.TerritoryId == internalId)
                //    .ISOCode ?? string.Empty;
                //TerritoryISOCode.Add(internalId, iso);
            }
        }
示例#7
0
        public AddressConfigurationSiteSettingsPartViewModel(
            AddressConfigurationSiteSettingsPart part,
            ITerritoryPartRecordService _territoryPartRecordService,
            IAddressConfigurationSettingsService addressConfigurationSettingsService = null) : this()
        {
            _contentManager = part.ContentItem.ContentManager;


            ShippingCountriesHierarchyId = part.ShippingCountriesHierarchyId;
            CountriesHierarchy           = part.ShippingCountriesHierarchyId == 0
                    ? null
                    : _contentManager
                                           .Get <TerritoryHierarchyPart>(part.ShippingCountriesHierarchyId);

            if (addressConfigurationSettingsService != null && CountriesHierarchy != null)
            {
                SelectedCountries = addressConfigurationSettingsService.SelectedCountryIds;
                SelectedProvinces = addressConfigurationSettingsService.SelectedProvinceIds;
                SelectedCities    = addressConfigurationSettingsService.SelectedCityIds;
                InitializeTerritories(_territoryPartRecordService);
            }
        }
示例#8
0
        public AddressConfigurationTerritoryViewModel(
            TerritoryPart part,
            IEnumerable <int> countries,
            IEnumerable <int> provinces,
            IEnumerable <int> cities,
            ITerritoryPartRecordService _territoryPartRecordService) : this()
        {
            _contentManager = part.ContentItem.ContentManager;

            Territory   = part;
            TerritoryId = part.Record.TerritoryInternalRecord.Id;

            var adminTypePart = part.As <TerritoryAdministrativeTypePart>();

            if (adminTypePart != null)
            {
                AdministrativeType = adminTypePart.AdministrativeType;
            }
            else
            {
                AdministrativeType = TerritoryAdministrativeType.None;
            }

            IsCountry  = AdministrativeType == TerritoryAdministrativeType.Country;
            IsProvince = AdministrativeType == TerritoryAdministrativeType.Province;
            IsCity     = AdministrativeType == TerritoryAdministrativeType.City;

            DisplayText = _contentManager
                          .GetItemMetadata(part)
                          .DisplayText;
            if (string.IsNullOrWhiteSpace(DisplayText))
            {
                DisplayText = part.Record.TerritoryInternalRecord.Name;
            }

            ChildrenCount = _territoryPartRecordService.GetTerritoriesChildCount(part); //part.Record.Children.Count();
        }