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(); }
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)); }
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); }
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 })); }
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)); } }