public Dictionary<int, Dictionary<string, IList<SimpleAreaData>>> GetAreaData()
        {
            var areaListBuilder = new AreaListProvider(ReaderFactory.GetAreasReader());
            areaListBuilder.CreateAreaListFromAreaCodes(_parameters.AreaCodes);
            var areas = areaListBuilder.Areas;

            Dictionary<int, Dictionary<string, IList<SimpleAreaData>>> groupIdToData =
                new Dictionary<int, Dictionary<string, IList<SimpleAreaData>>>();

            foreach (var groupId in _parameters.GroupIds)
            {
                Dictionary<string, IList<SimpleAreaData>> data = new AreaDataBuilder
                {
                    GroupId = groupId,
                    Areas = areas,
                    AreaTypeId = _parameters.AreaTypeId,
                    ComparatorAreaCodes = _parameters.ComparatorAreaCodes,
                    IncludeTimePeriods = _parameters.IncludeTimePeriods,
                    LatestDataOnly = _parameters.LatestDataOnly
                }.Build();
                groupIdToData.Add(groupId, data);
            }

            return groupIdToData;
        }
 public ChildAreaListForCategoryAreaBuilder(IAreasReader reader, CategoryArea parentArea, int childAreaType)
 {
     var areaCodes = reader
         .GetCategorisedAreasForOneCategory(AreaTypeIds.Country, childAreaType, parentArea.CategoryTypeId, parentArea.CategoryId)
         .Select(x => x.AreaCode);
     var areaListBuilder = new AreaListProvider(reader);
     areaListBuilder.CreateAreaListFromAreaCodes(areaCodes);
     ChildAreas = areaListBuilder.Areas.OrderBy(x=> x.Name).ToList();
 }
 public IList<IArea> GetAreasOfAreaType(string area_codes)
 {
     try
     {
         var codes = new StringListParser(area_codes).StringList;
         var areaListBuilder = new AreaListProvider(ReaderFactory.GetAreasReader());
         areaListBuilder.CreateAreaListFromAreaCodes(codes);
         return areaListBuilder.Areas;
     }
     catch (Exception ex)
     {
         Log(ex);
         throw;
     }
 }
        public void TestGetAreaListFromAreaCodes()
        {
            const string code = "a";

            var codes = new[] { code };

            var mock = new Mock<AreasReader>();
            mock.Setup(x => x
                .GetAreaFromCode(code))
                .Returns(new Area { Code = code });
            var builder = new AreaListProvider(mock.Object);

            builder.CreateAreaListFromAreaCodes(codes);
            var areas = builder.Areas;
            Assert.AreEqual(1, areas.Count);
            Assert.AreEqual(code, areas.First().Code);
        }
        public void TestGetAreaListFromAreaCodesReturnEmptyListForIfAreaCodes()
        {
            var codes = new string[] { };

            var mock = new Mock<AreasReader>();
            mock.Setup(x => x
                .GetAreasFromCodes(codes))
                .Returns(new List<Area>());

            var builder = new AreaListProvider(mock.Object);

            builder.CreateAreaListFromAreaCodes(codes);
            Assert.AreEqual(0, builder.Areas.Count);
        }