public async Task <IActionResult> PostConfirmation(ConfirmationCommand command) =>
 await _mediator.SendAndMapResponse(
     command,
     success => RedirectToAction(
         nameof(ApprenticeshipQAController.ProviderSelected),
         "ApprenticeshipQA",
         new { providerId = _journeyInstance.State.ProviderId }));
コード例 #2
0
        public async Task <Success> Handle(ConfirmationCommand request, CancellationToken cancellationToken)
        {
            if (!_journeyInstance.State.GotAssessmentOutcome)
            {
                throw new InvalidStateException();
            }

            var apprenticeshipId = _journeyInstance.State.ApprenticeshipId;
            var providerId       = _journeyInstance.State.ProviderId;

            var currentUserId = _currentUserProvider.GetCurrentUser().UserId;
            var now           = _clock.UtcNow;

            var submission = await GetSubmission();

            var overallPassed = _journeyInstance.State.IsSubmissionPassed(submission.ProviderAssessmentPassed);

            await _sqlQueryDispatcher.ExecuteQuery(
                new SetProviderApprenticeshipQAStatus()
            {
                ProviderId             = providerId,
                ApprenticeshipQAStatus = ApprenticeshipQAStatus.InProgress
            });

            await _sqlQueryDispatcher.ExecuteQuery(
                new CreateApprenticeshipQAApprenticeshipAssessment()
            {
                ApprenticeshipQASubmissionId = submission.ApprenticeshipQASubmissionId,
                ApprenticeshipId             = apprenticeshipId,
                AssessedByUserId             = currentUserId,
                AssessedOn              = now,
                ComplianceComments      = _journeyInstance.State.ComplianceComments,
                ComplianceFailedReasons = _journeyInstance.State.ComplianceFailedReasons.Value,
                CompliancePassed        = _journeyInstance.State.CompliancePassed.Value,
                Passed             = _journeyInstance.State.IsApprenticeshipAssessmentPassed(),
                StyleComments      = _journeyInstance.State.StyleComments,
                StyleFailedReasons = _journeyInstance.State.StyleFailedReasons.Value,
                StylePassed        = _journeyInstance.State.StylePassed.Value
            });

            await _sqlQueryDispatcher.ExecuteQuery(
                new UpdateApprenticeshipQASubmission()
            {
                ApprenticeshipQASubmissionId = submission.ApprenticeshipQASubmissionId,
                Passed = overallPassed,
                LastAssessedByUserId            = currentUserId,
                LastAssessedOn                  = now,
                ProviderAssessmentPassed        = submission.ProviderAssessmentPassed,
                ApprenticeshipAssessmentsPassed = _journeyInstance.State.IsApprenticeshipAssessmentPassed()
            });

            await _sqlQueryDispatcher.ExecuteQuery(
                new SetProviderApprenticeshipQAStatus()
            {
                ProviderId             = _journeyInstance.State.ProviderId,
                ApprenticeshipQAStatus = ApprenticeshipQAStatus.InProgress
            });

            return(new Success());
        }
コード例 #3
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 public MainWindowViewModel()
 {
     ConfirmationCommand.Subscribe(ConfirmationMethod).AddTo(Disposable);
     InformationCommand.Subscribe(_ => ShowInformationDialog("メッセージ", "タイトル", MessageBoxImage.Error)).AddTo(Disposable);
     OpenFileCommand.Subscribe(OpenFileMethod).AddTo(Disposable);
     SaveFileCommand.Subscribe(SaveFileMethod).AddTo(Disposable);
     ClosedCommand.Subscribe(Close).AddTo(Disposable);
 }
コード例 #4
0
 Guid IRestrictQAStatus <ConfirmationCommand> .GetProviderId(ConfirmationCommand request) => _journeyInstance.State.ProviderId;