public JsonResult GetChildren(int territoryId = 0) { var parent = _addressConfigurationService .SingleTerritory(territoryId); if (parent == null) { // this is an error return(null); } else { return(Json(new { Success = true, Territories = parent.Children .Select(ci => { var tp = ci.As <TerritoryPart>(); var id = tp.Record.TerritoryInternalRecord.Id; var adminTypePart = tp.As <TerritoryAdministrativeTypePart>(); var adminType = TerritoryAdministrativeType.None; if (adminTypePart != null) { adminType = adminTypePart.AdministrativeType; } var isCountry = adminType == TerritoryAdministrativeType.Country; var isProvince = adminType == TerritoryAdministrativeType.Province; var isCity = adminType == TerritoryAdministrativeType.City; var isNone = adminType == TerritoryAdministrativeType.None; var recordsChildrenCount = _territoryPartRecordService.GetTerritoriesChildCount(tp); return new { Id = id, DisplayText = _contentManager .GetItemMetadata(ci).DisplayText + " " + T("(Administrative type: {0})", administrativeTypeNames[adminType]), IsCountry = isCountry, IsProvince = isProvince, IsCity = isCity, IsNone = isNone, HasChildren = recordsChildrenCount > 0 ? true : false, ChildrenCount = recordsChildrenCount }; }) })); } }
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(); }