コード例 #1
0
        private async Task CreateOrUpdateProviderQualificationAsync(ProviderVenueQualificationDto providerVenueQualification,
                                                                    int providerVenueId, string postcode, int qualificationId)
        {
            var providerQualificationViewModel =
                await _providerQualificationService.GetProviderQualificationAsync(providerVenueId, qualificationId);

            if (providerQualificationViewModel == null && providerVenueQualification.QualificationIsOffered)
            {
                var addQualificationViewModel = new AddQualificationViewModel
                {
                    LarId           = providerVenueQualification.LarId,
                    QualificationId = qualificationId,
                    Source          = Source,
                    ProviderVenueId = providerVenueId,
                    Postcode        = postcode
                };

                Debug.WriteLine(
                    $">>>> Creating ProviderQualification {addQualificationViewModel.LarId} - {addQualificationViewModel.QualificationId} - {addQualificationViewModel.ProviderVenueId}");
                await _providerQualificationService.CreateProviderQualificationAsync(addQualificationViewModel);
            }
            // Delete Provider Venue Qualification
            else if (providerQualificationViewModel != null && !providerVenueQualification.QualificationIsOffered)
            {
                Debug.WriteLine(
                    $">>>> Removing ProviderQualification {providerVenueId} - {qualificationId} ({providerQualificationViewModel.ProviderVenueId} - {providerQualificationViewModel.QualificationId})");
                await _providerQualificationService.RemoveProviderQualificationAsync(providerVenueId, qualificationId);
            }
        }
        public When_Qualification_Add_Qualification_Does_Not_Exist()
        {
            var providerVenueService = Substitute.For <IProviderVenueService>();

            _qualificationService = Substitute.For <IQualificationService>();
            _qualificationService.IsValidLarIdAsync("12345678").Returns(true);
            _qualificationService.GetQualificationAsync("12345678").ReturnsNull();
            _qualificationService.IsValidOfqualLarIdAsync("12345678").Returns(true);

            _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 AddQualificationViewModel
            {
                ProviderVenueId = 1,
                LarId           = "12345678",
                Postcode        = "CV1 2WT"
            };

            _result = controllerWithClaims.CreateQualificationAsync(viewModel).GetAwaiter().GetResult();
        }
コード例 #3
0
 public AddQualificationView(QualificationService qualificationService, QualificationListViewModel qualificationListViewModel) : this()
 {
     _qualificationService       = qualificationService;
     _qualificationListViewModel = qualificationListViewModel;
     _qualificationToAdd         = new AddQualificationViewModel(_qualificationService);
     DataContext = _qualificationToAdd;
 }
        public async Task <int> CreateProviderQualificationAsync(AddQualificationViewModel viewModel)
        {
            var providerQualification = await _providerQualificationRepository.GetSingleOrDefaultAsync(
                pq => pq.ProviderVenueId == viewModel.ProviderVenueId &&
                pq.QualificationId == viewModel.QualificationId);

            if (providerQualification != null)
            {
                return(providerQualification.Id);
            }

            providerQualification = _mapper.Map <ProviderQualification>(viewModel);
            return(await _providerQualificationRepository.CreateAsync(providerQualification));
        }
コード例 #5
0
        public async Task <AddQualificationViewModel> GetAddQualificationViewModelAsync(VacancyRouteModel vrm)
        {
            var vacancyTask           = Utility.GetAuthorisedVacancyForEditAsync(_client, _vacancyClient, vrm, RouteNames.Qualification_Add_Get);
            var allQualificationsTask = _vacancyClient.GetCandidateQualificationsAsync();

            await Task.WhenAll(vacancyTask, allQualificationsTask);

            var vm = new AddQualificationViewModel
            {
                Title = vacancyTask.Result.Title,
                QualificationTypes = allQualificationsTask.Result,
            };

            return(vm);
        }
コード例 #6
0
        public When_ProviderQualificationService_Is_Called_To_CreateProviderQualification()
        {
            var httpContextAccessor = Substitute.For <IHttpContextAccessor>();

            httpContextAccessor.HttpContext.Returns(new DefaultHttpContext
            {
                User = new ClaimsPrincipal(new ClaimsIdentity(new[]
                {
                    new Claim(ClaimTypes.GivenName, "createdByUserName"),
                    new Claim(ClaimTypes.Upn, "*****@*****.**")
                }))
            });

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

            _providerQualificationRepository = Substitute.For <IRepository <Domain.Models.ProviderQualification> >();
            _providerQualificationRepository.CreateAsync(Arg.Any <Domain.Models.ProviderQualification>())
            .Returns(1);
            _providerQualificationRepository.GetSingleOrDefaultAsync(Arg.Any <Expression <Func <Domain.Models.ProviderQualification, bool> > >())
            .Returns((Domain.Models.ProviderQualification)null);

            var providerQualificationService = new ProviderQualificationService(mapper, _providerQualificationRepository);

            var viewModel = new AddQualificationViewModel
            {
                ProviderVenueId = 1,
                QualificationId = 2,
                Postcode        = "CV1 2WT",
                LarId           = "10042982"
            };

            _result = providerQualificationService.CreateProviderQualificationAsync(viewModel).GetAwaiter().GetResult();
        }
        public When_Qualification_Add_Has_Invalid_LarId()
        {
            var providerVenueService = Substitute.For <IProviderVenueService>();

            _qualificationService = Substitute.For <IQualificationService>();
            _qualificationService.IsValidLarIdAsync("12345").Returns(false);

            _providerQualificationService = Substitute.For <IProviderQualificationService>();
            var routePathService = Substitute.For <IRoutePathService>();

            var qualificationController = new QualificationController(providerVenueService, _qualificationService, _providerQualificationService, routePathService);

            var viewModel = new AddQualificationViewModel
            {
                LarId    = "12345",
                Postcode = "CV1 2WT"
            };

            _result = qualificationController.CreateQualificationAsync(viewModel).GetAwaiter().GetResult();
        }
        public async Task <IActionResult> CreateQualificationAsync(AddQualificationViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("AddQualification", viewModel));
            }

            var isValid = await _qualificationService.IsValidLarIdAsync(viewModel.LarId);

            if (string.IsNullOrWhiteSpace(viewModel.LarId) || !isValid)
            {
                ModelState.AddModelError("LarId", "Enter a learning aim reference (LAR) that has 8 characters");
                return(View("AddQualification", viewModel));
            }

            var qualification = await _qualificationService.GetQualificationAsync(viewModel.LarId);

            if (qualification == null)
            {
                var isValidLar = await _qualificationService.IsValidOfqualLarIdAsync(viewModel.LarId);

                if (!isValidLar)
                {
                    ModelState.AddModelError("LarId", "You must enter a real learning aim reference (LAR)");
                    return(View("AddQualification", viewModel));
                }

                return(RedirectToRoute("MissingQualification",
                                       new
                {
                    providerVenueId = viewModel.ProviderVenueId,
                    larId = viewModel.LarId
                }));
            }

            viewModel.QualificationId = qualification.Id;
            await _providerQualificationService.CreateProviderQualificationAsync(viewModel);

            return(RedirectToRoute("GetProviderVenueDetail",
                                   new { providerVenueId = viewModel.ProviderVenueId }));
        }
コード例 #9
0
        public ActionResult AddQualification(AddQualificationViewModel model, int id)
        {
            try
            {
                HttpCookie conString = Request.Cookies.Get("rwxgqlb"); //getting the connection string from the cookies
                if (!ModelState.IsValid)
                {
                    ViewBag.StaffId = id;
                    return(View());
                }
                try
                {
                    Teacher t = new Teacher(id, Cryptography.Decrypt(conString.Value));
                    if (t.AddQualification(new Qualification {
                        Degree = model.Degree, Year = Convert.ToInt16(model.Year)
                    }))
                    {
                        return(RedirectToAction("ViewTeacherDetails", new { id = id, s = true }));
                    }
                    else
                    {
                        ViewBag.Error = true;

                        return(RedirectToAction("AddQualification", new { id = id }));
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError(string.Empty, ex.Message);
                    ViewBag.StaffId = id;
                    return(View());
                }
            }
            catch (Exception ex)
            {
                return(Content(ex.Message));
            }
        }