Exemple #1
0
        public SignupViewModel(
            IApiFactory apiFactory,
            ILoginManager loginManager,
            IAnalyticsService analyticsService,
            IOnboardingStorage onboardingStorage,
            IMvxNavigationService navigationService,
            IApiErrorHandlingService apiErrorHandlingService)
        {
            Ensure.Argument.IsNotNull(apiFactory, nameof(apiFactory));
            Ensure.Argument.IsNotNull(loginManager, nameof(loginManager));
            Ensure.Argument.IsNotNull(analyticsService, nameof(analyticsService));
            Ensure.Argument.IsNotNull(onboardingStorage, nameof(onboardingStorage));
            Ensure.Argument.IsNotNull(navigationService, nameof(navigationService));
            Ensure.Argument.IsNotNull(apiErrorHandlingService, nameof(apiErrorHandlingService));

            this.apiFactory              = apiFactory;
            this.loginManager            = loginManager;
            this.analyticsService        = analyticsService;
            this.onboardingStorage       = onboardingStorage;
            this.navigationService       = navigationService;
            this.apiErrorHandlingService = apiErrorHandlingService;

            LoginCommand                    = new MvxAsyncCommand(login);
            GoogleSignupCommand             = new MvxCommand(googleSignup);
            PickCountryCommand              = new MvxAsyncCommand(pickCountry);
            SignupCommand                   = new MvxAsyncCommand(signup, () => SignupEnabled);
            TogglePasswordVisibilityCommand = new MvxCommand(togglePasswordVisibility);
        }
Exemple #2
0
        public LoginViewModel(
            ILoginManager loginManager,
            IOnboardingStorage onboardingStorage,
            IMvxNavigationService navigationService,
            IPasswordManagerService passwordManagerService,
            IApiErrorHandlingService apiErrorHandlingService,
            IAnalyticsService analyticsService)
        {
            Ensure.Argument.IsNotNull(loginManager, nameof(loginManager));
            Ensure.Argument.IsNotNull(onboardingStorage, nameof(onboardingStorage));
            Ensure.Argument.IsNotNull(navigationService, nameof(navigationService));
            Ensure.Argument.IsNotNull(passwordManagerService, nameof(passwordManagerService));
            Ensure.Argument.IsNotNull(apiErrorHandlingService, nameof(apiErrorHandlingService));
            Ensure.Argument.IsNotNull(analyticsService, nameof(analyticsService));

            this.loginManager            = loginManager;
            this.onboardingStorage       = onboardingStorage;
            this.navigationService       = navigationService;
            this.passwordManagerService  = passwordManagerService;
            this.apiErrorHandlingService = apiErrorHandlingService;
            this.analyticsService        = analyticsService;

            BackCommand                     = new MvxCommand(back);
            NextCommand                     = new MvxCommand(next, () => NextIsEnabled);
            GoogleLoginCommand              = new MvxCommand(googleLogin);
            ForgotPasswordCommand           = new MvxCommand(forgotPassword);
            OpenPrivacyPolicyCommand        = new MvxCommand(openPrivacyPolicyCommand);
            OpenTermsOfServiceCommand       = new MvxCommand(openTermsOfServiceCommand);
            StartPasswordManagerCommand     = new MvxAsyncCommand(startPasswordManager, () => IsPasswordManagerAvailable);
            TogglePasswordVisibilityCommand = new MvxCommand(togglePasswordVisibility);
            ChangeSignUpToLoginCommand      = new MvxCommand(changeSignUpToLogin, () => IsSignUp);
        }
 internal FoundationMvvmCross(
     IApiFactory apiFactory,
     ITogglDatabase database,
     ITimeService timeService,
     IScheduler scheduler,
     IAnalyticsService analyticsService,
     IGoogleService googleService,
     IApplicationShortcutCreator shortcutCreator,
     IBackgroundService backgroundService,
     IOnboardingStorage onboardingStorage,
     IAccessRestrictionStorage accessRestrictionStorage,
     IMvxNavigationService navigationService,
     IApiErrorHandlingService apiErrorHandlingService)
 {
     Database                 = database;
     ApiFactory               = apiFactory;
     TimeService              = timeService;
     Scheduler                = scheduler;
     AnalyticsService         = analyticsService;
     GoogleService            = googleService;
     ShortcutCreator          = shortcutCreator;
     BackgroundService        = backgroundService;
     OnboardingStorage        = onboardingStorage;
     AccessRestrictionStorage = accessRestrictionStorage;
     NavigationService        = navigationService;
     ApiErrorHandlingService  = apiErrorHandlingService;
 }
Exemple #4
0
        public LoginViewModel(
            ILoginManager loginManager,
            IAnalyticsService analyticsService,
            IOnboardingStorage onboardingStorage,
            IMvxNavigationService navigationService,
            IPasswordManagerService passwordManagerService,
            IApiErrorHandlingService apiErrorHandlingService)
        {
            Ensure.Argument.IsNotNull(loginManager, nameof(loginManager));
            Ensure.Argument.IsNotNull(analyticsService, nameof(analyticsService));
            Ensure.Argument.IsNotNull(onboardingStorage, nameof(onboardingStorage));
            Ensure.Argument.IsNotNull(navigationService, nameof(navigationService));
            Ensure.Argument.IsNotNull(passwordManagerService, nameof(passwordManagerService));
            Ensure.Argument.IsNotNull(apiErrorHandlingService, nameof(apiErrorHandlingService));

            this.loginManager            = loginManager;
            this.analyticsService        = analyticsService;
            this.onboardingStorage       = onboardingStorage;
            this.navigationService       = navigationService;
            this.passwordManagerService  = passwordManagerService;
            this.apiErrorHandlingService = apiErrorHandlingService;

            SignupCommand                   = new MvxAsyncCommand(signup);
            GoogleLoginCommand              = new MvxCommand(googleLogin);
            LoginCommand                    = new MvxCommand(login, () => LoginEnabled);
            ForgotPasswordCommand           = new MvxAsyncCommand(forgotPassword);
            TogglePasswordVisibilityCommand = new MvxCommand(togglePasswordVisibility);
            StartPasswordManagerCommand     = new MvxAsyncCommand(startPasswordManager, () => IsPasswordManagerAvailable);
        }
Exemple #5
0
            public BaseApiErrorHandlingServiceTests()
            {
                User = Substitute.For <IDatabaseUser>();
                var token = Guid.NewGuid().ToString();

                User.ApiToken.Returns(token);
                NavigationService        = Substitute.For <IMvxNavigationService>();
                AccessRestrictionStorage = Substitute.For <IAccessRestrictionStorage>();
                ApiErrorHandlingService  =
                    new ApiErrorHandlingService(NavigationService, AccessRestrictionStorage);
            }
Exemple #6
0
        public TogglDataSource(
            ITogglApi api,
            ITogglDatabase database,
            ITimeService timeService,
            IApiErrorHandlingService apiErrorHandlingService,
            IBackgroundService backgroundService,
            Func <ITogglDataSource, ISyncManager> createSyncManager,
            TimeSpan minimumTimeInBackgroundForFullSync,
            IApplicationShortcutCreator shortcutCreator)
        {
            Ensure.Argument.IsNotNull(api, nameof(api));
            Ensure.Argument.IsNotNull(database, nameof(database));
            Ensure.Argument.IsNotNull(timeService, nameof(timeService));
            Ensure.Argument.IsNotNull(apiErrorHandlingService, nameof(apiErrorHandlingService));
            Ensure.Argument.IsNotNull(backgroundService, nameof(backgroundService));
            Ensure.Argument.IsNotNull(createSyncManager, nameof(createSyncManager));
            Ensure.Argument.IsNotNull(shortcutCreator, nameof(shortcutCreator));

            this.database = database;
            this.apiErrorHandlingService = apiErrorHandlingService;
            this.backgroundService       = backgroundService;
            this.shortcutCreator         = shortcutCreator;

            this.minimumTimeInBackgroundForFullSync = minimumTimeInBackgroundForFullSync;

            User              = new UserDataSource(database.User, timeService);
            Tags              = new TagsDataSource(database.IdProvider, database.Tags, timeService);
            Tasks             = new TasksDataSource(database.Tasks);
            Clients           = new ClientsDataSource(database.IdProvider, database.Clients, timeService);
            Preferences       = new PreferencesDataSource(database.Preferences);
            Projects          = new ProjectsDataSource(database.IdProvider, database.Projects, timeService);
            TimeEntries       = new TimeEntriesDataSource(database.TimeEntries, timeService);
            Workspaces        = new WorkspacesDataSource(database.Workspaces);
            WorkspaceFeatures = new WorkspaceFeaturesDataSource(database.WorkspaceFeatures);

            SyncManager = createSyncManager(this);

            ReportsProvider = new ReportsProvider(api, database);

            errorHandlingDisposable = SyncManager.ProgressObservable.Subscribe(onSyncError);
            isLoggedIn = true;
        }
 public Builder WithApiErrorHandlingService(IApiErrorHandlingService apiErrorHandlingService)
 {
     ApiErrorHandlingService = apiErrorHandlingService;
     return(this);
 }