public FitbitViewModel(
			IGetFitWebService getFitWebService,
			ICredentialRetrieverService credentialRetrieverService,
			ILoggedInUserService loggedInUserService)
            : base(UserDeviceSelections.Fitbit)
        {
            getFitWebService.CheckIfNull ("getFitWebService");
            credentialRetrieverService.CheckIfNull ("credentialRetrieverService");
            loggedInUserService.CheckIfNull ("loggedInUserService");

            this.getFitWebService = getFitWebService;
            this.credentialRetrieverService = credentialRetrieverService;
            this.loggedInUserService = loggedInUserService;
        }
        public UserLoginViewModel(IGetFitWebService getFitWebService, 
			ICredentialRetrieverService credentialRetrieverService,
			ILoggedInUserService loggedInUserService)
        {
            getFitWebService.CheckIfNull("getFitWebService");
            credentialRetrieverService.CheckIfNull("credentialRetrieverService");
            loggedInUserService.CheckIfNull("loggedInUserService");

            this.credentialRetrieverService = credentialRetrieverService;
            this.getFitWebService = getFitWebService;
            this.loggedInUserService = loggedInUserService;

            this.DoAfterSuccessfulLoginCommand = new MvxCommand<MobileServiceUser> (this.ExecuteDoAfterSuccessfulLogin);
        }
		public UserDeviceManagerViewModel (
			ICredentialRetrieverService credentialRetrieverService,
			ILoggedInUserService loggedInUserService,
			IGetFitWebService getFitWebService)
		{
			credentialRetrieverService.CheckIfNull("credentialRetrieverService");
			loggedInUserService.CheckIfNull("loggedInUserService");
			getFitWebService.CheckIfNull("getFitWebService");

			this.credentialRetrieverService = credentialRetrieverService;
			this.loggedInUserService = loggedInUserService;
			this.getFitWebService = getFitWebService;

			this.AddUserDeviceCommand = new MvxCommand (() => this.ShowViewModel<AddUserDeviceViewModel>());
			this.DeleteUserDeviceCommand = new MvxCommand (this.DeleteExecute, this.CanDelete);

			this.UserDevices = new ObservableCollection<UserDevice> ();

			this.UserDevices.Add (new NullUserDevice ());
		}
		public GarminViewModel(
			IGetFitWebService getFitWebService,
			ICredentialRetrieverService credentialRetrieverService,
			ILoggedInUserService loggedInUserService)
			: base(UserDeviceSelections.Garmin)
		{
			getFitWebService.CheckIfNull("getFitWebService");
			loggedInUserService.CheckIfNull("loggedInUserService");
			credentialRetrieverService.CheckIfNull("credentialRetrieverService");

			this.getFitWebService = getFitWebService;
			this.loggedInUserService = loggedInUserService;
			this.credentialRetrieverService = credentialRetrieverService;

			this.newModel = new UserDevice
			{
				UserId = loggedInUserService.LoggedInUser.UserId,
				DeviceSelection = UserDeviceSelections.Garmin,
			};

			this.AddCommand = new MvxCommand(this.AddExecute, this.CanAdd);
		}