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()); }