Пример #1
0
 public async Task UpdateDataLockTriageStatus(long dataLockEventId, TriageStatus triageStatus)
 {
     await WithTransaction(async (connection, trans) =>
     {
         await _dataLockTransactions.UpdateDataLockTriageStatus(connection, trans, dataLockEventId, triageStatus);
     });
 }
Пример #2
0
 public DetailsViewModelMapperFixture WithUnResolvedDataLocksInTriage(TriageStatus triageStatus)
 {
     GetDataLocksResponse.DataLocks = new List <GetDataLocksResponse.DataLock> {
         new GetDataLocksResponse.DataLock
         {
             Id             = 1,
             TriageStatus   = triageStatus,
             DataLockStatus = Status.Fail,
             IsResolved     = false
         }
     };
     return(this);
 }
        private void AssertValidTriageStatus(TriageStatus triageStatus, DataLockStatus dataLockStatus)
        {
            if (triageStatus == TriageStatus.Change)
            {
                if (!(dataLockStatus.ErrorCode.HasFlag(DataLockErrorCode.Dlock07) ||
                      dataLockStatus.ErrorCode.HasFlag(DataLockErrorCode.Dlock09)))
                {
                    throw new ValidationException($"Data lock {dataLockStatus.DataLockEventId} with error code {dataLockStatus.ErrorCode} cannot be triaged as {triageStatus}");
                }
            }

            if (triageStatus == TriageStatus.Restart)
            {
                if (!(dataLockStatus.ErrorCode.HasFlag(DataLockErrorCode.Dlock03) ||
                      dataLockStatus.ErrorCode.HasFlag(DataLockErrorCode.Dlock04) ||
                      dataLockStatus.ErrorCode.HasFlag(DataLockErrorCode.Dlock05) ||
                      dataLockStatus.ErrorCode.HasFlag(DataLockErrorCode.Dlock06)
                      ))
                {
                    throw new ValidationException($"Data lock {dataLockStatus.DataLockEventId} with error code {dataLockStatus.ErrorCode} cannot be triaged as {triageStatus}");
                }
            }
        }
Пример #4
0
        public async Task <long> UpdateDataLockTriageStatus(IEnumerable <long> dataLockEventIds, TriageStatus triageStatus)
        {
            return(await WithTransaction(async (connection, trans) =>
            {
                foreach (var id in dataLockEventIds)
                {
                    await _dataLockTransactions.UpdateDataLockTriageStatus(connection, trans,
                                                                           id, triageStatus);
                }

                return 0;
            }));
        }
Пример #5
0
        public async Task When_DataLocks_AreUnresolvedButInTriage_Then_DataLockStatus_IsAwaitingTriage(TriageStatus triageStatus)
        {
            _fixture.WithUnResolvedDataLocksInTriage(triageStatus);
            await _fixture.Map();

            Assert.AreEqual(DetailsViewModel.DataLockSummaryStatus.AwaitingTriage,
                            _fixture.Result.DataLockStatus);
        }
Пример #6
0
        public async Task WhenThereAreDataLocksInTriage_ThenAllowEditApprenticeIsFalse(TriageStatus triageStatus)
        {
            _fixture.WithUnResolvedDataLocksInTriage(triageStatus);

            await _fixture.Map();

            Assert.IsFalse(_fixture.Result.AllowEditApprentice);
        }
Пример #7
0
        public async Task <long> UpdateDataLockTriageStatus(IDbConnection connection,
                                                            IDbTransaction trans, long dataLockEventId, TriageStatus triageStatus)
        {
            var parameters = new DynamicParameters();

            parameters.Add("@DataLockEventId", dataLockEventId);
            parameters.Add("@TriageStatus", triageStatus);

            return(await connection.ExecuteAsync(
                       sql : $"[dbo].[UpdateDataLockTriageStatus]",
                       param : parameters,
                       transaction : trans,
                       commandType : CommandType.StoredProcedure));
        }
Пример #8
0
        public DataLockRequestChangesRequestToViewModelMapperTestsFixture WithCourseAndPriceDataLock(DateTime IlrEffectiveFromDate, decimal totalCost, string ilrTrainingCourseCode, TriageStatus triageStatus, DataLockErrorCode courseDataLockErrorCode)
        {
            DataLocksWithCourseMismatch.Add(
                new DataLock
            {
                IsResolved            = false,
                DataLockStatus        = Status.Fail,
                IlrEffectiveFromDate  = IlrEffectiveFromDate,
                IlrTotalCost          = totalCost,
                IlrTrainingCourseCode = ilrTrainingCourseCode,
                TriageStatus          = triageStatus,
                ErrorCode             = courseDataLockErrorCode | DataLockErrorCode.Dlock07
            });

            _dataLockSummariesResponse = AutoFixture.Build <GetDataLockSummariesResponse>()
                                         .With(x => x.DataLocksWithCourseMismatch, DataLocksWithCourseMismatch)
                                         .With(x => x.DataLocksWithOnlyPriceMismatch, DataLocksWithOnlyPriceMismatch)
                                         .Create();

            _mockCommitmentsApiClient.Setup(r => r.GetApprenticeshipDatalockSummariesStatus(It.IsAny <long>(), CancellationToken.None))
            .ReturnsAsync(_dataLockSummariesResponse);

            return(this);
        }
Пример #9
0
        public async Task TriageMultiplePriceDataLocks(long providerId, string hashedApprenticeshipId, string currentUserId, TriageStatus triageStatus)
        {
            var apprenticeshipId = _hashingService.DecodeValue(hashedApprenticeshipId);

            _logger.Info($"Updating price data locks to triage {triageStatus} for apprenticeship: {apprenticeshipId}", apprenticeshipId);

            await _mediator.Send(new TriageApprenticeshipDataLocksCommand
            {
                ProviderId       = providerId,
                ApprenticeshipId = apprenticeshipId,
                TriageStatus     = triageStatus,
                UserId           = currentUserId
            });
        }