Пример #1
0
        public App(IThemeChanger themeChanger)
        {
            InitializeComponent();

            Theme = new ColorTheme(themeChanger);
            Theme.ApplyColorTheme();


            if (Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Android)
            {
                var ci = DependencyService.Get <ILocalize>().GetCurrentCultureInfo();
                AppResources.Culture = ci;
                DependencyService.Get <ILocalize>().SetLocale(ci);
            }

            var containerBuilder = new ContainerBuilder();

            // Register data provider. Mock data provider is used in DebugMock build configuration
#if DEBUGMOCK
            containerBuilder.RegisterType <MockDataProvider>().As(typeof(IDataProvider)).SingleInstance();
#else
            var firebaseConfigurationOptions = Options.Create <FirebaseConfiguration>(new FirebaseConfiguration()
            {
                Enabled = true
            });

            containerBuilder.RegisterInstance(firebaseConfigurationOptions).As(typeof(IOptions <FirebaseConfiguration>)).SingleInstance();
            containerBuilder.RegisterType <FirebaseDataProvider>().As(typeof(IDataProvider)).SingleInstance();
#endif
            containerBuilder.RegisterType <DatabaseManagementService>().As(typeof(IDatabaseManagementService)).SingleInstance();

            // Register services
            containerBuilder.RegisterType <LocationDataService>().As(typeof(IDataService <Models.Location>)).SingleInstance();
            containerBuilder.RegisterType <HistoryDataService>().As(typeof(IDataService <MeasurementHistory>)).SingleInstance();
            containerBuilder.RegisterType <NavigationService>().As(typeof(INavigationService)).SingleInstance();

            // Register view models
            containerBuilder.RegisterType <LocationListViewModel>().As(typeof(LocationListViewModel)).SingleInstance().AutoActivate();
            containerBuilder.RegisterType <LocationGraphViewModel>().As(typeof(LocationGraphViewModel)).SingleInstance().AutoActivate();
            containerBuilder.RegisterType <LocationDetailsViewModel>().As(typeof(LocationDetailsViewModel)).SingleInstance().AutoActivate();
            containerBuilder.RegisterType <OptionsGeneralViewModel>().As(typeof(OptionsGeneralViewModel)).SingleInstance();
            containerBuilder.RegisterType <OptionsSummaryViewModel>().As(typeof(OptionsSummaryViewModel)).SingleInstance();
            containerBuilder.RegisterType <OptionsWidgetViewModel>().As(typeof(OptionsWidgetViewModel)).SingleInstance();

            containerBuilder.RegisterType <AboutViewModel>().As(typeof(AboutViewModel)).SingleInstance();

            var container = containerBuilder.Build();
            //container.Resolve<LocationListViewModel>();

            var dbManagementService = container.Resolve <IDatabaseManagementService>();
            dbManagementService.SetDatabaseConfiguration();

            AutofacServiceLocator asl = new AutofacServiceLocator(container);
            ServiceLocator.SetLocatorProvider(() => asl);

            MainPage = new AppShell();
        }
Пример #2
0
        public App(IThemeChanger themeChanger)
        {
            User = new User();

            SyncfusionLicenseProvider.RegisterLicense("MTUzNzM5QDMxMzcyZTMzMmUzMEhGM29ILzZFaUc3MGppQUdzMUlEZDJIamhjNStBUGJldmhBUlNYODRySEE9");
            InitializeComponent();

            ThemeChanger = themeChanger;
            MainPage     = new MainPage();
        }
Пример #3
0
 public ColorTheme(IThemeChanger themeChanger)
 {
     _themeChanger = themeChanger;
 }