2424
2525namespace Integreat . Shared . ViewFactory
2626{
27+ /// <inheritdoc />
2728 /// <summary>
2829 /// In the Integreat module we fill the IoC container and create necessary services
2930 /// </summary>
30- [ SecurityCritical ]
3131 public class IntegreatModule : Module
3232 {
3333 [ SecurityCritical ]
34- public IntegreatModule ( )
34+ protected override void Load ( ContainerBuilder builder )
3535 {
36+ RegisterViewModels ( builder ) ;
37+ RegisterMainPages ( builder ) ;
38+ RegisterNewsAndExtras ( builder ) ;
39+ RegisterGeneralPageTypes ( builder ) ;
40+ RegisterPageResolver ( builder ) ;
3641 }
3742
38- [ SecurityCritical ]
39- protected override void Load ( ContainerBuilder builder )
43+ private static void RegisterPageResolver ( ContainerBuilder builder )
44+ {
45+ builder . RegisterInstance < Func < Page > > ( Instance ) ;
46+ builder . RegisterInstance ( CreateDataLoadService ( HttpClientFactory . GetHttpClient ( new Uri ( Constants . IntegreatReleaseUrl ) ) ) ) ;
47+ builder . RegisterType < DataLoaderProvider > ( ) ;
48+ builder . RegisterType < LocationsDataLoader > ( ) ;
49+ builder . RegisterType < LanguagesDataLoader > ( ) ;
50+ builder . RegisterType < DisclaimerDataLoader > ( ) ;
51+ builder . RegisterType < EventPagesDataLoader > ( ) ;
52+ builder . Register ( _ => new BackgroundDownloader ( HttpClientFactory . GetHttpClient ( new Uri ( Constants . IntegreatReleaseUrl ) ) ) ) . AsImplementedInterfaces ( ) . SingleInstance ( ) ;
53+ builder . RegisterType < PagesDataLoader > ( ) ;
54+ builder . Register ( _ => new SprungbrettParser ( HttpClientFactory . GetHttpClient ( new Uri ( Constants . IntegreatReleaseUrl ) ) ) ) . AsImplementedInterfaces ( ) . SingleInstance ( ) ;
55+ }
56+
57+ private static void RegisterGeneralPageTypes ( ContainerBuilder builder )
58+ {
59+ builder . RegisterType < GeneralWebViewPage > ( ) ;
60+ builder . RegisterType < PdfWebViewPage > ( ) ;
61+ builder . RegisterType < ImageViewPage > ( ) ;
62+ }
63+
64+ private static void RegisterNewsAndExtras ( ContainerBuilder builder )
65+ {
66+ builder . RegisterType < EventsSingleItemDetailViewModel > ( ) ;
67+ builder . RegisterType < JobOffersPage > ( ) ;
68+ builder . RegisterType < SprungbrettViewModel > ( ) ;
69+ }
70+
71+ private static void RegisterMainPages ( ContainerBuilder builder )
4072 {
41- //
42- // VIEW MODELS
43- //
73+ builder . RegisterType < LanguagesPage > ( ) ;
74+ builder . RegisterType < LocationsPage > ( ) ;
75+ builder . RegisterType < SearchListPage > ( ) ;
76+ builder . RegisterType < ContentContainerPage > ( ) ;
77+ builder . RegisterType < MainContentPage > ( ) ;
78+ builder . RegisterType < ExtrasContentPage > ( ) ;
79+ builder . RegisterType < EventsContentPage > ( ) ;
80+
81+ builder . RegisterType < MainTwoLevelPage > ( ) ;
82+
83+ builder . RegisterType < SettingsPage > ( ) ;
84+ }
4485
86+ private static void RegisterViewModels ( ContainerBuilder builder )
87+ {
4588 builder . RegisterType < PageViewModel > ( ) ;
4689 builder . RegisterType < EventPageViewModel > ( ) ;
4790
48-
4991 builder . RegisterType < LocationsViewModel > ( ) ;
5092 builder . RegisterType < LanguagesViewModel > ( ) ; // can have multiple instances
5193
52-
5394 builder . RegisterType < SearchViewModel > ( ) ;
54- // redesign
95+
5596 builder . RegisterType < ContentContainerViewModel > ( ) ;
5697 builder . RegisterType < MainContentPageViewModel > ( ) ;
5798 builder . RegisterType < ExtrasContentPageViewModel > ( ) ;
5899 builder . RegisterType < EventsContentPageViewModel > ( ) ;
59100
60- // main
61101 builder . RegisterType < MainTwoLevelViewModel > ( ) ;
62102
63- // general
64103 builder . RegisterType < GeneralWebViewPageViewModel > ( ) ;
65104 builder . RegisterType < PdfWebViewPageViewModel > ( ) ;
66105 builder . RegisterType < ImagePageViewModel > ( ) ;
67106
68- // settings
69107 builder . RegisterType < SettingsPageViewModel > ( ) ;
70-
71- //
72- // PAGES
73- //
74-
75- // register views
76- builder . RegisterType < LanguagesPage > ( ) ;
77- builder . RegisterType < LocationsPage > ( ) ;
78- builder . RegisterType < SearchListPage > ( ) ;
79- // redesign
80- builder . RegisterType < ContentContainerPage > ( ) ;
81- builder . RegisterType < MainContentPage > ( ) ;
82- builder . RegisterType < ExtrasContentPage > ( ) ;
83- builder . RegisterType < EventsContentPage > ( ) ;
84-
85- // main
86- builder . RegisterType < MainTwoLevelPage > ( ) ;
87-
88- // events
89- builder . RegisterType < EventsSingleItemDetailViewModel > ( ) ;
90-
91- // extras
92- builder . RegisterType < JobOffersPage > ( ) ;
93- builder . RegisterType < SprungbrettViewModel > ( ) ;
94-
95- // general
96- builder . RegisterType < GeneralWebViewPage > ( ) ;
97- builder . RegisterType < PdfWebViewPage > ( ) ;
98- builder . RegisterType < ImageViewPage > ( ) ;
99-
100- // settings
101- builder . RegisterType < SettingsPage > ( ) ;
102-
103- // current page resolver
104- builder . RegisterInstance < Func < Page > > ( Instance ) ;
105- builder . RegisterInstance ( CreateDataLoadService ( HttpClientFactory . GetHttpClient ( new Uri ( Constants . IntegreatReleaseUrl ) ) ) ) ;
106- builder . RegisterType < DataLoaderProvider > ( ) ;
107- builder . RegisterType < LocationsDataLoader > ( ) ;
108- builder . RegisterType < LanguagesDataLoader > ( ) ;
109- builder . RegisterType < DisclaimerDataLoader > ( ) ;
110- builder . RegisterType < EventPagesDataLoader > ( ) ;
111- builder . Register ( _=> new BackgroundDownloader ( HttpClientFactory . GetHttpClient ( new Uri ( Constants . IntegreatReleaseUrl ) ) ) ) . AsImplementedInterfaces ( ) . SingleInstance ( ) ;
112- builder . RegisterType < PagesDataLoader > ( ) ;
113- builder . Register ( _ => new SprungbrettParser ( HttpClientFactory . GetHttpClient ( new Uri ( Constants . IntegreatReleaseUrl ) ) ) ) . AsImplementedInterfaces ( ) . SingleInstance ( ) ;
114108 }
115109
116- [ SecurityCritical ]
117110 private static IDataLoadService CreateDataLoadService ( HttpClient client )
118111 {
119112 var networkServiceSettings = new RefitSettings
@@ -127,7 +120,8 @@ private static IDataLoadService CreateDataLoadService(HttpClient client)
127120 } ;
128121 return RestService . For < IDataLoadService > ( client , networkServiceSettings ) ;
129122 }
130- [ SecurityCritical ]
131- private static Page Instance ( ) => Application . Current . MainPage ;
123+
124+ private static Page Instance ( )
125+ => Application . Current . MainPage ;
132126 }
133127}
0 commit comments