示例#1
0
        public async Task ProcessStoppedApprenticeship(ApprenticeshipStoppedEvent apprenticeshipStoppedEvent)
        {
            logger.LogDebug($"Now processing the stopped apprenticeship with  id: {apprenticeshipStoppedEvent.ApprenticeshipId}");
            var model = new UpdatedApprenticeshipStoppedModel
            {
                ApprenticeshipId = apprenticeshipStoppedEvent.ApprenticeshipId,
                StopDate         = apprenticeshipStoppedEvent.StopDate
            };

            await HandleStoppedApprenticeship(model);
        }
示例#2
0
        private async Task HandleStoppedApprenticeship(UpdatedApprenticeshipStoppedModel model)
        {
            try
            {
                logger.LogDebug($"Now processing the stopped apprenticeship with  id: {model.ApprenticeshipId}");

                var updatedApprenticeship = await apprenticeshipStoppedService.UpdateApprenticeship(model).ConfigureAwait(false);
                await PublishApprenticeshipUpdate(updatedApprenticeship);

                logger.LogInfo($"Finished processing the stopped apprenticeship event. Apprenticeship id: {updatedApprenticeship.Id}, employer account id: {updatedApprenticeship.AccountId}, Ukprn: {updatedApprenticeship.Ukprn}.");
            }
            catch (Exception ex)
            {
                logger.LogError($"Error processing the stopped apprenticeship event. Error: {ex.Message}", ex);
                throw;
            }
        }
示例#3
0
        public async Task Updates_Stopped_Apprenticeship()
        {
            var updatedApprenticeship = new UpdatedApprenticeshipStoppedModel
            {
                ApprenticeshipId = 629959,
                StopDate         = DateTime.Today
            };

            var apprenticeshipModel = new ApprenticeshipModel
            {
                Id                          = updatedApprenticeship.ApprenticeshipId,
                StopDate                    = DateTime.Today.AddDays(-5),
                Status                      = ApprenticeshipStatus.Active,
                Uln                         = 1,
                AgreedOnDate                = DateTime.Today.AddDays(-2),
                EstimatedStartDate          = DateTime.Today.AddDays(-1),
                EstimatedEndDate            = DateTime.Today.AddYears(2),
                ProgrammeType               = 25,
                StandardCode                = 17,
                ApprenticeshipPriceEpisodes = new List <ApprenticeshipPriceEpisodeModel>
                {
                    new ApprenticeshipPriceEpisodeModel
                    {
                        Id = 1,
                        ApprenticeshipId = updatedApprenticeship.ApprenticeshipId,
                        StartDate        = new DateTime(2017, 08, 06),
                        Cost             = 15000.00m
                    },
                    new ApprenticeshipPriceEpisodeModel
                    {
                        Id = 161,
                        ApprenticeshipId = updatedApprenticeship.ApprenticeshipId,
                        StartDate        = new DateTime(2017, 08, 10),
                        Cost             = 1000.00m
                    }
                },
                Ukprn = 100,
                TransferSendingEmployerAccountId = 101,
                AccountId       = 1,
                AgreementId     = "1",
                IsLevyPayer     = true,
                LegalEntityName = "Test Employer",
                FrameworkCode   = 1,
                PathwayCode     = 1,
            };

            mocker.Mock <IApprenticeshipRepository>()
            .Setup(x => x.Get(It.Is <long>(id => id == apprenticeshipModel.Id)))
            .ReturnsAsync(apprenticeshipModel);

            var service = mocker.Create <ApprenticeshipStoppedService>();
            await service.UpdateApprenticeship(updatedApprenticeship);

            mocker.Mock <IApprenticeshipRepository>()
            .Verify(x => x.UpdateApprenticeship(It.Is <ApprenticeshipModel>(model =>
                                                                            model.Id == updatedApprenticeship.ApprenticeshipId &&
                                                                            model.StopDate == updatedApprenticeship.StopDate &&
                                                                            model.Status == ApprenticeshipStatus.Stopped &&
                                                                            model.ApprenticeshipPriceEpisodes.Count == 2 &&
                                                                            model.ApprenticeshipPriceEpisodes[0].Cost == apprenticeshipModel.ApprenticeshipPriceEpisodes[0].Cost &&
                                                                            model.ApprenticeshipPriceEpisodes[0].StartDate == apprenticeshipModel.ApprenticeshipPriceEpisodes[0].StartDate &&
                                                                            model.ApprenticeshipPriceEpisodes[1].StartDate == apprenticeshipModel.ApprenticeshipPriceEpisodes[1].StartDate &&
                                                                            model.ApprenticeshipPriceEpisodes[1].Cost == apprenticeshipModel.ApprenticeshipPriceEpisodes[1].Cost &&
                                                                            model.Uln == apprenticeshipModel.Uln &&
                                                                            model.AgreedOnDate == apprenticeshipModel.AgreedOnDate &&
                                                                            model.EstimatedStartDate == apprenticeshipModel.EstimatedStartDate &&
                                                                            model.EstimatedEndDate == apprenticeshipModel.EstimatedEndDate &&
                                                                            model.ProgrammeType == apprenticeshipModel.ProgrammeType &&
                                                                            model.StandardCode == apprenticeshipModel.StandardCode &&
                                                                            model.Ukprn == apprenticeshipModel.Ukprn &&
                                                                            model.TransferSendingEmployerAccountId == apprenticeshipModel.TransferSendingEmployerAccountId &&
                                                                            model.AccountId == apprenticeshipModel.AccountId &&
                                                                            model.AgreementId == apprenticeshipModel.AgreementId &&
                                                                            model.IsLevyPayer == apprenticeshipModel.IsLevyPayer &&
                                                                            model.LegalEntityName == apprenticeshipModel.LegalEntityName &&
                                                                            model.FrameworkCode == apprenticeshipModel.FrameworkCode &&
                                                                            model.PathwayCode == apprenticeshipModel.FrameworkCode

                                                                            )), Times.Once);

            mocker.Mock <IApprenticeshipRepository>()
            .Verify(x => x.Get(It.Is <long>(id => id == apprenticeshipModel.Id)), Times.Exactly(2));
        }