Esempio n. 1
0
        public App(bool isTest)
        {
            InitializeComponent();

            var builder = new ContainerBuilder();

            builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies())
            .AsImplementedInterfaces()
            .AsSelf();

            _navigationPage = new NavigationPage();
            var lazyNavigation = new Lazy <INavigation>(() => _navigationPage.Navigation);

            builder.RegisterType <NavigationService>()
            .As <INavigationService>()
            .WithParameter("navigation", lazyNavigation);

            builder.RegisterGeneric(typeof(Repository <>))
            .As(typeof(IRepository <>))
            .WithParameter("path", DatabaseConstants.Path)
            .WithParameter("flags", DatabaseConstants.Flags);

            builder.RegisterType <Web3Service>()
            .As <IWeb3Service>()
            .SingleInstance();

            Container = builder.Build();

            if (!isTest)
            {
                LogFilePath = Path.Combine(FileSystem.AppDataDirectory, "Logs/ethereumwalletlog.txt");
                Log.Logger  = new LoggerConfiguration()
                              .MinimumLevel.Debug()
                              .WriteTo.Debug()
                              .WriteTo.File(LogFilePath)
                              .CreateLogger();
            }

            SettingsRepository = Container.Resolve <IRepository <Settings> >();
            Settings           = SettingsRepository.GetFirstOrDefault().Result;
            if (Settings is null)
            {
                Settings = new Settings();
            }
        }