Exemplo n.º 1
0
        private void StartApp()
        {
            // Bootstrap together our Autofac container, including module registrations
            _runtime = DefaultApplication_Shared.Build().Bootstrap();

            _viewFactory       = _runtime.Container.Resolve <IViewFactory>();
            _VMsICanNavigateTo = _runtime.Container.Resolve <IViewModelsICanNavigateTo>();

            // Deserialise all our JSONs into their respective Models
            _condContent = _runtime.Container.Resolve <IContentProvider <CondContent> >().Fetch();
            _exclContent = _runtime.Container.Resolve <IContentProvider <ExclContent> >().Fetch();
            _madContent  = _runtime.Container.Resolve <IContentProvider <MADContent> >().Fetch();
            _wllContent  = _runtime.Container.Resolve <IContentProvider <WLLContent> >().Fetch();
            _pavContent  = _runtime.Container.Resolve <IContentProvider <PAVContent> >().Fetch();

            // The Home Page View Model, specifically, requires all of the above deserialised contents (just so we generate the text for the 5 buttons on the home page),
            // so we'll collect these into "allContents" for passing into HomePageViewModel
            var allContents = new List <IRootModel>
            {
                _condContent,
                _exclContent,
                _madContent,
                _wllContent,
                _pavContent
            };

            // Map all of our View Models to their respective Views
            _viewFactory.Map <HomePageViewModel, HomePage>();

            _viewFactory.Map <ConductorsViewModel, ConductorsPage>();
            _viewFactory.Map <ConductorViewModel, ConductorPage>();
            _viewFactory.Map <MeasurementsViewModel, MeasurementsPage>();

            _viewFactory.Map <ExclusionZonesViewModel, ExclusionZonesPage>();

            _viewFactory.Map <MADViewModel, MADPage>();
            _viewFactory.Map <CategoriesViewModel, CategoriesPage>();

            _viewFactory.Map <WLLViewModel, WLLPage>();

            _viewFactory.Map <PAVViewModel, PAVPage>();
            _viewFactory.Map <ApprTypesViewModel, ApprTypesPage>();
            _viewFactory.Map <ObserverStatesViewModel, ObserverStatesPage>();

            // Resolve the Home Page View Model from the Autofac container
            _homePageVM = _runtime.Container.ResolveWithParameters <HomePageViewModel>(new Dictionary <string, object>
            {
                { "deserializedContents", allContents }
            });

            // Asycnhronsouly resolve ALL other View Models required for this appliation.
            // In case this takes a while, display a loading activity indicator until this is complete
            Task.Run(() => LoadAppViewModels());

            // Displays the Home Page
            MainPage = _viewFactory.CreateThemedNavPage(_homePageVM);
        }