public When_Qualification_Save_MissingQualification_Short_Title_Is_Too_Long()
        {
            var qualificationService         = Substitute.For <IQualificationService>();
            var providerVenueService         = Substitute.For <IProviderVenueService>();
            var providerQualificationService = Substitute.For <IProviderQualificationService>();
            var routePathService             = Substitute.For <IRoutePathService>();

            var qualificationController = new QualificationController(providerVenueService, qualificationService,
                                                                      providerQualificationService, routePathService);
            var controllerWithClaims = new ClaimsBuilder <QualificationController>(qualificationController)
                                       .AddUserName("username")
                                       .AddEmail("*****@*****.**")
                                       .Build();

            var viewModel = new MissingQualificationViewModel
            {
                ProviderVenueId = 1,
                LarId           = "12345678",
                QualificationId = 1,
                Title           = "Qualification title",
                ShortTitle      = new string('X', 101),
                Routes          = new List <RouteSummaryViewModel>
                {
                    new RouteSummaryViewModel
                    {
                        Id         = 1,
                        Name       = "Route 1",
                        IsSelected = true
                    }
                }
            };

            _result = controllerWithClaims.SaveMissingQualificationAsync(viewModel).GetAwaiter().GetResult();
        }
Ejemplo n.º 2
0
        private async Task <int> CreateOrUpdateQualificationAsync(ProviderVenueQualificationDto providerVenueQualification, int providerVenueId)
        {
            var qualification = await _qualificationService.GetQualificationAsync(providerVenueQualification.LarId);

            int qualificationId;

            if (qualification == null)
            {
                var missingQualificationViewModel = new MissingQualificationViewModel
                {
                    LarId           = providerVenueQualification.LarId,
                    ProviderVenueId = providerVenueId,
                    Title           = providerVenueQualification.QualificationTitle,
                    ShortTitle      = providerVenueQualification.QualificationShortTitle,
                    Source          = Source
                };

                qualificationId = await _qualificationService.CreateQualificationEntityAsync(missingQualificationViewModel);

                Debug.WriteLine($">>>> Created Removing Qualification {qualificationId}");
            }
            else
            {
                qualificationId = qualification.Id;
            }

            return(qualificationId);
        }
Ejemplo n.º 3
0
        public async Task <int> CreateQualificationEntityAsync(MissingQualificationViewModel viewModel)
        {
            var qualification   = _mapper.Map <Qualification>(viewModel);
            var qualificationId = await _qualificationRepository.CreateAsync(qualification);

            return(qualificationId);
        }
        public When_QualificationService_Is_Called_To_CreateQualification()
        {
            var httpContextAccessor = Substitute.For <IHttpContextAccessor>();

            var config = new MapperConfiguration(c =>
            {
                c.AddMaps(typeof(QualificationMapper).Assembly);
                c.ConstructServicesUsing(type =>
                                         type.Name.Contains("LoggedInUserEmailResolver") ?
                                         new LoggedInUserEmailResolver <MissingQualificationViewModel, Domain.Models.Qualification>(httpContextAccessor) :
                                         type.Name.Contains("LoggedInUserNameResolver") ?
                                         (object)new LoggedInUserNameResolver <MissingQualificationViewModel, Domain.Models.Qualification>(httpContextAccessor) :
                                         type.Name.Contains("UtcNowResolver") ?
                                         new UtcNowResolver <MissingQualificationViewModel, Domain.Models.Qualification>(new DateTimeProvider()) :
                                         null);
            });
            var mapper = new Mapper(config);

            var learningAimReferenceRepository = Substitute.For <IRepository <LearningAimReference> >();

            var qualificationRepository = Substitute.For <IRepository <Domain.Models.Qualification> >();

            qualificationRepository
            .CreateAsync(Arg.Do <Domain.Models.Qualification>(
                             q => q.Id = 1))
            .Returns(1);
            qualificationRepository.GetSingleOrDefaultAsync(Arg.Any <Expression <Func <Domain.Models.Qualification, bool> > >())
            .Returns(new Domain.Models.Qualification());

            _qualificationRouteMappingRepository = Substitute.For <IRepository <QualificationRouteMapping> >();
            _qualificationRouteMappingRepository
            .CreateManyAsync(Arg.Do <IList <QualificationRouteMapping> >(
                                 qrpm => qrpm.First().Qualification.Id = 1))
            .Returns(1);

            var qualificationService = new QualificationService(mapper, qualificationRepository, _qualificationRouteMappingRepository, learningAimReferenceRepository);

            var viewModel = new MissingQualificationViewModel
            {
                ProviderVenueId = 1,
                LarId           = "10042982",
                Title           = "Title",
                ShortTitle      = "Short Title",
                Source          = "Test",
                Routes          = new List <RouteSummaryViewModel>
                {
                    new RouteSummaryViewModel
                    {
                        Id         = 1,
                        Name       = "Route 1",
                        IsSelected = true,
                        Summary    = "Route Summary"
                    }
                }
            };

            _result = qualificationService.CreateQualificationAsync(viewModel).GetAwaiter().GetResult();
        }
        private async Task <IList <RouteSummaryViewModel> > GetRoutesAsync(MissingQualificationViewModel viewModel = null)
        {
            var routes = await _routePathService.GetRouteSummaryAsync();

            foreach (var route in routes)
            {
                if (viewModel?.Routes.Any(r => r.Id == route.Id && r.IsSelected) == true)
                {
                    route.IsSelected = true;
                }
            }

            return(routes);
        }
Ejemplo n.º 6
0
        public async Task <int> CreateQualificationAsync(MissingQualificationViewModel viewModel)
        {
            var qualification = _mapper.Map <Qualification>(viewModel);

            var qualificationRouteMappings = viewModel
                                             .Routes?
                                             .Where(r => r.IsSelected)
                                             .Select(route => new QualificationRouteMapping
            {
                RouteId       = route.Id,
                Source        = viewModel.Source,
                Qualification = qualification
            }).ToList();

            if (qualificationRouteMappings?.Count > 0)
            {
                await _qualificationRouteMappingRepository.CreateManyAsync(qualificationRouteMappings);
            }

            return(qualification.Id);
        }
        public async Task <IActionResult> SaveMissingQualificationAsync(MissingQualificationViewModel viewModel)
        {
            Validate(viewModel);

            if (!ModelState.IsValid)
            {
                viewModel.Routes = await GetRoutesAsync(viewModel);

                return(View("MissingQualification", viewModel));
            }

            var qualificationId = await _qualificationService.CreateQualificationAsync(viewModel);

            await _providerQualificationService.CreateProviderQualificationAsync(
                new AddQualificationViewModel
            {
                ProviderVenueId = viewModel.ProviderVenueId,
                QualificationId = qualificationId,
                Source          = viewModel.Source
            });

            return(RedirectToRoute("GetProviderVenueDetail",
                                   new { providerVenueId = viewModel.ProviderVenueId }));
        }