protected override void AdditionalSetup() { _mockUserInteraction = new Mock <ICustomUserInteraction>(); Ioc.RegisterSingleton <ICustomUserInteraction>(_mockUserInteraction.Object); _mockMessenger = new Mock <IMvxMessenger>(); Ioc.RegisterSingleton <IMvxMessenger>(_mockMessenger.Object); _fixture = new Fixture().Customize(new AutoMoqCustomization()); _fixture.OmitProperty("EffectiveDateString"); _fixture.Customize <InstructionSafetyCheckViewModel>(vm => vm.Without(x => x.SafetyCheckItemViewModels)); _fixture.Customize <InstructionSafetyCheckViewModel>(vm => vm.Without(x => x.SafetyProfileVehicle)); _fixture.Customize <SafetyCheckFault>(vm => vm.With(x => x.Status, Core.Enums.SafetyCheckStatus.Passed)); _driver = _fixture.Create <Core.Models.Driver>(); _vehicle = _fixture.Create <Core.Models.Vehicle>(); _trailer = _fixture.Create <Core.Models.Trailer>(); _infoService = _fixture.Create <InfoService>(); _fixture.Inject <IInfoService>(_infoService); _infoService.SetCurrentDriver(_driver); _infoService.SetCurrentVehicle(_vehicle); _safetyCheckService = _fixture.Create <SafetyCheckService>(); _fixture.Inject <ISafetyCheckService>(_safetyCheckService); _mobileData = _fixture.SetUpInstruction(Core.Enums.InstructionType.Collect, false, true, false, false, false, false, true, null); _navData = new NavData <MobileData>() { Data = _mobileData }; _navData.OtherData["UpdatedTrailer"] = _trailer; _safetyCheckService.CurrentVehicleSafetyCheckData = _vehicleSafetyCheckData = _fixture.Create <SafetyCheckData>(); _navData.OtherData["UpdatedTrailerSafetyCheckData"] = _trailerSafetyCheckData = _fixture.Create <SafetyCheckData>(); var mockMobileDataRepo = _fixture.InjectNewMock <IMobileDataRepository>(); mockMobileDataRepo.Setup(mdr => mdr.GetByIDAsync(It.Is <Guid>(i => i == _mobileData.ID))).ReturnsAsync(_mobileData); _mockSafetyProfileRepository = _fixture.InjectNewMock <ISafetyProfileRepository>(); _mockConfigRepository = _fixture.InjectNewMock <IConfigRepository>(); _mockVehicleRepo = _fixture.InjectNewMock <IVehicleRepository>(); _mockVehicleRepo.Setup(vr => vr.GetByIDAsync(_vehicle.ID)).ReturnsAsync(_vehicle); var repositories = _fixture.Create <Repositories>(); _fixture.Inject <IRepositories>(repositories); _mockNavigationService = _fixture.InjectNewMock <INavigationService>(); Ioc.RegisterSingleton <INavigationService>(_mockNavigationService.Object); _safetyProfiles = CreateSafetyProfiles(); }
private async Task AuthenticateAsync() { AuthenticationResult result; LogMessage exceptionMsg = null; ProgressTitle = _progressTitleForPasscode; ProgressMessage = _progressMessageForPasscode; this.IsBusy = true; try { result = await _authenticationService.AuthenticateAsync(this.Passcode); if (result.Success) { _infoService.SetCurrentDriver(result.Driver); if (await _currentDriverRepository.GetByIDAsync(_infoService.CurrentDriverID.Value) == null) { var newDriver = new CurrentDriver { ID = _infoService.CurrentDriverID.Value }; try { await _currentDriverRepository.InsertAsync(newDriver); } catch (Exception ex) { MvxTrace.Error("\"{0}\" in {1}.{2}\n{3}", ex.Message, "CurrentDriverRepository", "InsertAsync", ex.StackTrace); throw; } } // Start the gateway queue timer which will cause submission of any queued data to the MWF Mobile gateway service on a repeat basis _gatewayQueuedService.StartQueueTimer(); await _navigationService.MoveToNextAsync(); } } catch (Exception ex) { exceptionMsg = _loggingService.GetExceptionLogMessage(ex); result = new AuthenticationResult() { AuthenticationFailedMessage = "Unable to check your passcode.", Success = false }; } finally { // clear the passcode this.Passcode = string.Empty; this.IsBusy = false; } if (exceptionMsg != null) { await _loggingService.LogEventAsync(exceptionMsg); } // Let the user know if (!result.Success) { await Mvx.Resolve <ICustomUserInteraction>().AlertAsync(result.AuthenticationFailedMessage); } }