private IEnumerable <BuildPass <T> > GetBuildPasses() { return(Enum .GetValues(typeof(T)) .Cast <T>() .Select(s => { var pass = BuildPass <T> .Create(s, EntityType, EntityHelper, Settings, Builder, Roots, Enumerations, Code, PluralizationService); var section = GetSection(s, pass); pass.Section = section; return pass; })); }
private ISection GetSection(T buildSection, BuildPass <T> pass) { ISection returnValue = null; TypeSwitch.On <T> ( TypeSwitch.Case <eBuildSectionEntity>(() => { returnValue = AFSectionFactoryEntity.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionEntityPartial>(() => { returnValue = AFSectionFactoryEntityPartial.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionContext>(() => { returnValue = AFSectionFactoryContext.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionMapping>(() => { returnValue = AFSectionFactoryMapping.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionService>(() => { returnValue = AFSectionFactoryService.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionServiceInterface>(() => { returnValue = AFSectionFactoryServiceInterface.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionEnumeration>(() => { returnValue = AFSectionFactoryEnumeration.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionAppContext>(() => { returnValue = AFSectionFactoryAppContext.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionContract>(() => { returnValue = AFSectionFactoryContract.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionAppService>(() => { returnValue = AFSectionFactoryAppService.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionAppServiceInterface>(() => { returnValue = AFSectionFactoryAppServiceInterface.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionControllerApi>(() => { returnValue = AFSectionFactoryControllerApi.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionControllerMvc>(() => { returnValue = AFSectionFactoryControllerMvc.CreateSection(buildSection, pass); }), TypeSwitch.Case <eBuildSectionAutoMapperProfile>(() => { returnValue = AFSectionFactoryAutoMapperProfile.CreateSection(buildSection, pass); }), TypeSwitch.Default(() => { throw new NotSupportedException(string.Concat("Unsupported section type: ", typeof(T).Name)); }) ); return(returnValue); }