public WifiControllerViewModel(ICommandGenerator commandGenerator, ISettingAccess settingAccess, INavigator navigator, IHTTPClient httpClient,
                                       IPlatformToast platformToast) : base(navigator)
        {
            _commandGenerator = commandGenerator;
            _settingAccess    = settingAccess;
            _httpClient       = httpClient;
            _platformToast    = platformToast;

            InitializeCommands();
        }
        public App(IPlatformToast platformToast, IServerConnection pingConnection)
        {
            InitializeComponent();
            SetPlatformConfig();
            var settings = new NinjectSettings()
            {
                LoadExtensions = false
            };

            Container = new StandardKernel(settings);
            ConfigureContainer(platformToast, pingConnection);
            ComposeObjects();
        }
 public SettingsViewModel(ISettingAccess settingAccess, ICommandGenerator commandGenerator, INavigator INavigator, IPlatformToast platformToast) : base(INavigator)
 {
     _settingAccess      = settingAccess;
     _commandGenerator   = commandGenerator;
     _platformToast      = platformToast;
     SaveSettingsCommand = _commandGenerator.GenerateCommand(async() =>
     {
         try
         {
             await SaveSettings(Settings);
         }
         catch (ArgumentNullException)
         {
             _platformToast.ShowToast("Could not save settings...try again");
         }
     });
 }
        private void ConfigureContainer(IPlatformToast platformToast, IServerConnection pingConnection)
        {
            string databasePath = "";

            if (Device.RuntimePlatform == Device.UWP)
            {
                databasePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "database.db");
            }
            else
            {
                databasePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "database.db");
            }

            Container.Bind <IPlatformToast>().ToConstant(platformToast);

            Container.Bind <IServerConnection>().ToConstant(pingConnection);

            Container.Bind <ICommandGenerator>().To <CommandGenerator>()
            .InSingletonScope();

            Container.Bind <ISettingAccess>().To <SettingReaderWriterSQL>()
            .WithConstructorArgument <string>(databasePath);

            Container.Bind <IHTTPClient>().To <HTTPClientService>().WithConstructorArgument("pingConnection", Container.Get <IServerConnection>());

            Container.Bind <IViewFactory>().To <ViewFactory>()
            .InSingletonScope()
            .WithConstructorArgument(Container);

            Container.Bind <INavigator>().To <Navigator>()
            .InSingletonScope()
            .WithConstructorArgument(Container.Get <IViewFactory>());

            Container.Get <IViewFactory>().Register <WifiControllerViewModel, WifiControlView>();
            Container.Get <IViewFactory>().RegisterAndCache <SettingsViewModel, SettingsView>();
        }
 public App(IPlatformToast platformToast) : this(platformToast, new ServerConnection())
 {
 }