public void AutoMapperProfileCourseRegionsConverter()
        {
            var expectedVenuesOutput = new List <CourseRegion>();

            //Build the input and expected output
            for (int regions = 0; regions < 2; regions++)
            {
                var parentRegion = new FAC.ParentRegion()
                {
                    Name = $"Region-{regions}"
                };
                var expectedCourseRegion = new CourseRegion()
                {
                    Region = parentRegion.Name
                };
                for (int subRegions = 0; subRegions < 2; subRegions++)
                {
                    var subRegion = new FAC.SubRegion()
                    {
                        Name = $"SubRegion-{regions}-{subRegions}", ParentRegion = parentRegion
                    };
                    clientCourseDetails.SubRegions.Add(subRegion);
                    expectedCourseRegion.Area += $", {subRegion.Name}";
                }

                expectedCourseRegion.Area = expectedCourseRegion.Area.Substring(2);
                expectedVenuesOutput.Add(expectedCourseRegion);
            }

            var mapped = Mapper.Map <CourseDetails>(clientCourseDetails);

            mapped.Title.Should().Be(clientCourseDetails.Title);
            mapped.CourseRegions.Should().BeEquivalentTo(expectedVenuesOutput);
        }
        public IList <CourseRegion> Convert(List <FAC.SubRegion> subRegions, ResolutionContext context)
        {
            List <CourseRegion> courseRegions = new List <CourseRegion>();
            var groupedRegions = subRegions.GroupBy(g => g.ParentRegion.Name);

            foreach (var region in groupedRegions)
            {
                CourseRegion courseRegion = new CourseRegion()
                {
                    Region = region.Key
                };
                var areas = region.Select(r => r.Name);
                courseRegion.Area = string.Join(", ", areas);
                courseRegions.Add(courseRegion);
            }

            return(courseRegions.OrderBy(r => r.Region).ToList());
        }