public void TrainingProvidedRequired(string trainingProvided, bool expectValid)
        {
            var viewModel = new TrainingDetailsViewModel
            {
                TrainingProvided = trainingProvided,
                VacancySource    = VacancySource.Raa
            };
            var vacancyViewModel = new VacancyViewModelBuilder().With(_furtherDetailsViewModel).With(viewModel).Build();

            _validator.Validate(viewModel);
            _aggregateValidator.Validate(vacancyViewModel);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Errors);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Warnings);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.ErrorsAndWarnings);

            if (expectValid)
            {
                _validator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingProvided, viewModel);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.TrainingProvided, vacancyViewModel);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.TrainingProvided, vacancyViewModel, RuleSets.Errors);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.TrainingProvided, vacancyViewModel, RuleSets.Warnings);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.TrainingProvided, vacancyViewModel, RuleSets.ErrorsAndWarnings);
            }
            else
            {
                _validator.ShouldHaveValidationErrorFor(vm => vm.TrainingProvided, viewModel);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.TrainingProvided, vacancyViewModel);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.TrainingProvided, vacancyViewModel, RuleSets.Errors);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.TrainingProvided, vacancyViewModel, RuleSets.Warnings);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.TrainingProvided, vacancyViewModel, RuleSets.ErrorsAndWarnings);
            }
        }
        public ActionResult TrainingDetails(TrainingDetailsViewModel viewModel)
        {
            var response = _vacancyMediator.UpdateVacancy(viewModel);

            ModelState.Clear();

            switch (response.Code)
            {
            case VacancyMediatorCodes.UpdateVacancy.FailedValidation:
                response.ValidationResult.AddToModelState(ModelState, string.Empty);
                return(View(response.ViewModel));

            case VacancyMediatorCodes.UpdateVacancy.Ok:
                return(RedirectToRoute(ManagementRouteNames.ReviewVacancy,
                                       new
                {
                    vacancyReferenceNumber = response.ViewModel.VacancyReferenceNumber
                }));

            case VacancyMediatorCodes.UpdateVacancy.InvalidVacancy:
                SetUserMessage(response.Message);
                return(RedirectToRoute(ManagementRouteNames.Dashboard));

            default:
                throw new InvalidMediatorCodeException(response.Code);
            }
        }
        public void ShouldRequireApprenticeshipLevel(ApprenticeshipLevel apprenticeshipLevel, TrainingType trainingType, bool expectValid)
        {
            // Arrange.
            var viewModel = new TrainingDetailsViewModel
            {
                TrainingType        = trainingType,
                ApprenticeshipLevel = apprenticeshipLevel
            };
            var vacancyViewModel = new VacancyViewModelBuilder().With(viewModel).With(_furtherDetailsViewModel).Build();

            // Act.
            _validator.Validate(viewModel);
            _aggregateValidator.Validate(vacancyViewModel);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Errors);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Warnings);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.ErrorsAndWarnings);

            // Assert.
            if (expectValid)
            {
                _validator.ShouldNotHaveValidationErrorFor(m => m.ApprenticeshipLevel, viewModel);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ApprenticeshipLevel, vacancyViewModel);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ApprenticeshipLevel, vacancyViewModel, RuleSets.Errors);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ApprenticeshipLevel, vacancyViewModel, RuleSets.Warnings);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ApprenticeshipLevel, vacancyViewModel, RuleSets.ErrorsAndWarnings);
            }
            else
            {
                _validator.ShouldHaveValidationErrorFor(m => m.ApprenticeshipLevel, viewModel);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ApprenticeshipLevel, vacancyViewModel);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ApprenticeshipLevel, vacancyViewModel, RuleSets.Errors);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ApprenticeshipLevel, vacancyViewModel, RuleSets.Warnings);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ApprenticeshipLevel, vacancyViewModel, RuleSets.ErrorsAndWarnings);
            }
        }
Beispiel #4
0
        public async Task <IActionResult> Edit(int id, TrainingDetailsViewModel trainingDetails)
        {
            if (id != trainingDetails.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(trainingDetails.GetModel());
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TrainingDetailsExists(trainingDetails.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index), new { id = trainingDetails.TrainingId }));
            }
            ViewBag.TrainingId = trainingDetails.TrainingId;
            return(View(trainingDetails));
        }
        public void ShouldFillApprenticeshipLevelIfTrainingTypeIsStandardAndApprenticeshipLevelIsUnknown()
        {
            // Arrange.
            var trainingDetailsViewModel = new TrainingDetailsViewModel
            {
                VacancyReferenceNumber = VacancyReferenceNumber,
                ApprenticeshipLevel    = ApprenticeshipLevel.Unknown,
                TrainingType           = TrainingType.Standards,
                StandardId             = 1
            };

            MockVacancyPostingService.Setup(s => s.UpdateVacancy(It.IsAny <Vacancy>())).Returns <Vacancy>(v => v);
            MockMapper.Setup(m => m.Map <Vacancy, TrainingDetailsViewModel>(It.IsAny <Vacancy>()))
            .Returns((Vacancy av) => new TrainingDetailsViewModel()
            {
                FrameworkCodeName = av.FrameworkCodeName, ApprenticeshipLevel = av.ApprenticeshipLevel
            });

            var provider = GetVacancyPostingProvider();

            // Act.
            var viewModel = provider.UpdateVacancy(trainingDetailsViewModel);

            // Assert.
            viewModel.ApprenticeshipLevel.Should().NotBe(ApprenticeshipLevel.Unknown);
        }
        public void ShouldCreateNullFrameworkCodeIfTrainingTypeStandard()
        {
            // Arrange.
            var trainingDetailsViewModel = new TrainingDetailsViewModel
            {
                VacancyReferenceNumber = VacancyReferenceNumber,
                ApprenticeshipLevel    = ApprenticeshipLevel.Unknown,
                TrainingType           = TrainingType.Standards,
                StandardId             = 1,
                FrameworkCodeName      = "ShouldBeNulled"
            };

            MockVacancyPostingService.Setup(s => s.UpdateVacancy(It.IsAny <Vacancy>())).Returns <Vacancy>(v => v);
            MockMapper.Setup(m => m.Map <Vacancy, TrainingDetailsViewModel>(It.IsAny <Vacancy>()))
            .Returns((Vacancy av) => new TrainingDetailsViewModel()
            {
                FrameworkCodeName = av.FrameworkCodeName
            });


            var provider = GetVacancyPostingProvider();

            // Act.
            var viewModel = provider.UpdateVacancy(trainingDetailsViewModel);

            // Assert.
            viewModel.FrameworkCodeName.Should().BeNullOrEmpty();
        }
        public void ShouldCreateApprenticeshipLevelIfTrainingTypeStandard(int standardId, ApprenticeshipLevel expectedApprenticeshipLevel)
        {
            // Arrange.
            var trainingDetailsViewModel = new TrainingDetailsViewModel
            {
                VacancyReferenceNumber = VacancyReferenceNumber,
                ApprenticeshipLevel    = expectedApprenticeshipLevel,
                TrainingType           = TrainingType.Standards,
                StandardId             = standardId
            };

            MockVacancyPostingService.Setup(s => s.UpdateVacancy(It.IsAny <Vacancy>())).Returns <Vacancy>(v => v);
            MockMapper.Setup(m => m.Map <Vacancy, TrainingDetailsViewModel>(It.IsAny <Vacancy>()))
            .Returns((Vacancy av) => new TrainingDetailsViewModel()
            {
                ApprenticeshipLevel = av.ApprenticeshipLevel
            });

            var provider = GetVacancyPostingProvider();

            // Act.
            var viewModel = provider.UpdateVacancy(trainingDetailsViewModel);

            // Assert.
            viewModel.ApprenticeshipLevel.Should().Be(expectedApprenticeshipLevel);
        }
        public void ContactDetailsShouldPassValidation(string fullName, string email, string phoneNumber)
        {
            // Arrange.
            var viewModel = new TrainingDetailsViewModel
            {
                ContactName   = fullName,
                ContactEmail  = email,
                ContactNumber = phoneNumber,
                VacancySource = VacancySource.Raa
            };
            var vacancyViewModel = new VacancyViewModelBuilder().With(_furtherDetailsViewModel).With(viewModel).Build();

            // Act.
            _validator.Validate(viewModel);
            _aggregateValidator.Validate(vacancyViewModel);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Errors);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Warnings);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.ErrorsAndWarnings);

            // Assert.
            _validator.ShouldNotHaveValidationErrorFor(m => m.ContactName, viewModel);
            _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ContactName, vacancyViewModel);
            _validator.ShouldNotHaveValidationErrorFor(m => m.ContactNumber, viewModel);
            _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ContactNumber, vacancyViewModel);
            _validator.ShouldNotHaveValidationErrorFor(m => m.ContactEmail, viewModel);
            _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ContactEmail, vacancyViewModel);
        }
        public void ShouldRequireSectorCodeName(string sectorCodeName, VacancyType vacancyType, bool expectValid)
        {
            // Arrange.
            var viewModel = new TrainingDetailsViewModel
            {
                VacancyType    = vacancyType,
                SectorCodeName = sectorCodeName
            };
            var vacancyViewModel = new VacancyViewModelBuilder().With(_furtherDetailsViewModel).With(viewModel).Build();

            // Act.
            _validator.Validate(viewModel);
            _aggregateValidator.Validate(vacancyViewModel);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Errors);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Warnings);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.ErrorsAndWarnings);

            // Assert.
            if (expectValid)
            {
                _validator.ShouldNotHaveValidationErrorFor(m => m.SectorCodeName, viewModel);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.SectorCodeName, vacancyViewModel);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.SectorCodeName, vacancyViewModel, RuleSets.Errors);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.SectorCodeName, vacancyViewModel, RuleSets.Warnings);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.SectorCodeName, vacancyViewModel, RuleSets.ErrorsAndWarnings);
            }
            else
            {
                _validator.ShouldHaveValidationErrorFor(m => m.SectorCodeName, viewModel);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.SectorCodeName, vacancyViewModel);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.SectorCodeName, vacancyViewModel, RuleSets.Errors);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.SectorCodeName, vacancyViewModel, RuleSets.Warnings);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.SectorCodeName, vacancyViewModel, RuleSets.ErrorsAndWarnings);
            }
        }
        public ActionResult SelectStandard(TrainingDetailsViewModel viewModel)
        {
            var response = _vacancyMediator.SelectStandardAsTrainingType(viewModel);

            ModelState.Clear();

            return(View("TrainingDetails", response.ViewModel));
        }
Beispiel #11
0
        public void DefaultShouldNotHaveAnyValidationErrors()
        {
            var viewModel = new TrainingDetailsViewModel();

            var result = _validator.Validate(viewModel);

            result.IsValid.Should().BeTrue();
        }
Beispiel #12
0
        // GET: TrainingDetails/Create
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public IActionResult Create(int id)
        {
            TrainingDetailsViewModel vm;

            vm = new TrainingDetailsViewModel(_context);

            vm.TrainingId      = id;
            ViewBag.TrainingId = id;
            return(View(vm));
        }
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Training training = db.Trainings.Find(id);

            //ユーザー名を取得
            string userName = "";
            var    userId   = training.ApplicationUserId;
            var    user     = db.Users.FirstOrDefault(u => u.Id == userId);

            if (user != null)
            {
                userName = user.UserName;
            }

            //お気に入り追加済みか判定
            var  favorite   = db.Favorites.FirstOrDefault(f => f.ApplicationUserId == userId && f.TrainingID == id);
            bool isFavorite = true;

            if (favorite == null)
            {
                isFavorite = false;
            }



            //View用モデル生成
            var trainingDetailsViewModel = new TrainingDetailsViewModel()
            {
                ID                    = training.ID,
                AddDateTime           = training.AddDateTime.ToShortDateString(),
                Purpose               = training.Purpose,
                Title                 = training.Title,
                UpdateDateTime        = training.UpdateDateTime,
                YoutubeURL            = training.YoutubeURL,
                Tags                  = training.Tags.Select(t => t.Name).ToList(),
                IsFavorite            = isFavorite,
                RecommendPersonNumber = training.RecommendPersonNumber,
                RequiredPersonNumber  = training.RequiredPersonNumber,
                TimeDuration          = training.TimeDuration,
                UserName              = userName
            };


            if (trainingDetailsViewModel == null)
            {
                return(HttpNotFound());
            }
            return(View(trainingDetailsViewModel));
        }
Beispiel #14
0
        public async Task <IActionResult> Create(int id, TrainingDetailsViewModel trainingDetails)
        {
            if (ModelState.IsValid)
            {
                ViewBag.TrainingId         = id;
                trainingDetails.Id         = 0;
                trainingDetails.TrainingId = id;

                _context.Add(trainingDetails.GetModel());
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index), new { id = trainingDetails.TrainingId }));
            }
            return(View(trainingDetails));
        }
        public void EmptyContactDetailsShouldBeValid()
        {
            var viewModel        = new TrainingDetailsViewModel();
            var vacancyViewModel = new VacancyViewModelBuilder().With(_furtherDetailsViewModel).With(viewModel).Build();

            _validator.Validate(viewModel);
            _aggregateValidator.Validate(vacancyViewModel);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Errors);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Warnings);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.ErrorsAndWarnings);

            _validator.ShouldNotHaveValidationErrorFor(m => m.ContactName, viewModel);
            _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ContactName, vacancyViewModel);
            _validator.ShouldNotHaveValidationErrorFor(m => m.ContactNumber, viewModel);
            _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ContactNumber, vacancyViewModel);
            _validator.ShouldNotHaveValidationErrorFor(m => m.ContactEmail, viewModel);
            _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.ContactEmail, vacancyViewModel);
        }
Beispiel #16
0
        public void ContactNumberInvalidCharacters(string contactNumber, bool expectValid)
        {
            var viewModel = new TrainingDetailsViewModel
            {
                ContactNumber = contactNumber,
                VacancySource = VacancySource.Raa
            };

            _validator.Validate(viewModel);

            if (expectValid)
            {
                _validator.ShouldNotHaveValidationErrorFor(vm => vm.ContactNumber, viewModel);
            }
            else
            {
                _validator.ShouldHaveValidationErrorFor(vm => vm.ContactNumber, viewModel);
            }
        }
Beispiel #17
0
        public void TrainingProvidedInvalidCharacters(string trainingProvided, bool expectValid)
        {
            var viewModel = new TrainingDetailsViewModel
            {
                TrainingProvided = trainingProvided,
                VacancySource    = VacancySource.Raa
            };

            _validator.Validate(viewModel);

            if (expectValid)
            {
                _validator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingProvided, viewModel);
            }
            else
            {
                _validator.ShouldHaveValidationErrorFor(vm => vm.TrainingProvided, viewModel);
            }
        }
        public void ShouldRequireStandardId(string standardIdString, TrainingType trainingType, bool expectValid)
        {
            // Arrange.
            int?standardId = null;
            int parsedStandardId;

            if (int.TryParse(standardIdString, out parsedStandardId))
            {
                standardId = parsedStandardId;
            }
            var viewModel = new TrainingDetailsViewModel
            {
                TrainingType = trainingType,
                StandardId   = standardId
            };
            var vacancyViewModel = new VacancyViewModelBuilder().With(_furtherDetailsViewModel).With(viewModel).Build();

            // Act.
            _validator.Validate(viewModel);
            _aggregateValidator.Validate(vacancyViewModel);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Errors);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Warnings);
            _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.ErrorsAndWarnings);

            // Assert.
            if (expectValid)
            {
                _validator.ShouldNotHaveValidationErrorFor(m => m.StandardId, viewModel);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.StandardId, vacancyViewModel);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.StandardId, vacancyViewModel, RuleSets.Errors);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.StandardId, vacancyViewModel, RuleSets.Warnings);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.StandardId, vacancyViewModel, RuleSets.ErrorsAndWarnings);
            }
            else
            {
                _validator.ShouldHaveValidationErrorFor(m => m.StandardId, viewModel);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.StandardId, vacancyViewModel);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.StandardId, vacancyViewModel, RuleSets.Errors);
                _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.StandardId, vacancyViewModel, RuleSets.Warnings);
                _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.TrainingDetailsViewModel, vm => vm.TrainingDetailsViewModel.StandardId, vacancyViewModel, RuleSets.ErrorsAndWarnings);
            }
        }
        public MediatorResponse <TrainingDetailsViewModel> UpdateVacancy(TrainingDetailsViewModel viewModel)
        {
            var validationResult = _trainingDetailsViewModelServerValidator.Validate(viewModel);

            if (!validationResult.IsValid)
            {
                var sectorsAndFrameworks = _vacancyQaProvider.GetSectorsAndFrameworks();
                var standards            = _vacancyQaProvider.GetStandards();
                var sectors = _vacancyQaProvider.GetSectors();
                viewModel.SectorsAndFrameworks = sectorsAndFrameworks;
                viewModel.Standards            = standards;
                viewModel.Sectors = sectors;

                return(GetMediatorResponse(VacancyMediatorCodes.UpdateVacancy.FailedValidation, viewModel, validationResult));
            }

            var updatedViewModel = _vacancyQaProvider.UpdateVacancyWithComments(viewModel);

            return(ReturnResult(updatedViewModel));
        }
Beispiel #20
0
        // GET: TrainingDetails/Edit/5
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <IActionResult> Edit(int?id)
        {
            TrainingDetailsViewModel vm;

            if (id == 0)
            {
                vm = new TrainingDetailsViewModel(_context);
            }
            else
            {
                var trainingDetails = await _context.TrainingDetails.FindAsync(id);

                if (trainingDetails == null)
                {
                    return(NotFound());
                }
                vm = new TrainingDetailsViewModel(_context, trainingDetails);
                ViewBag.TrainingId = trainingDetails.TrainingId;
            }

            return(View(vm));
        }
Beispiel #21
0
        public void ShouldReturnOKIfTheUserCanLockTheVacancy()
        {
            //Arrange
            const string ukprn = "ukprn";
            //const int QAVacancyTimeout = 10;
            const string userName = "******";
            var          utcNow   = DateTime.UtcNow;
            const int    vacancyReferenceNumber = 1;
            const string aString = "aString";
            const int    autoSaveTimeoutInSeconds = 60;

            var sectorList = new List <Sector>
            {
                new Fixture().Build <Sector>().Create()
            };

            var viewModel = new TrainingDetailsViewModel()
            {
                TrainingProvided         = aString,
                TrainingProvidedComment  = aString,
                VacancyReferenceNumber   = vacancyReferenceNumber,
                AutoSaveTimeoutInSeconds = autoSaveTimeoutInSeconds
            };

            var vacancy = new Fixture().Build <Vacancy>()
                          .With(av => av.VacancyReferenceNumber, vacancyReferenceNumber)
                          .With(av => av.TrainingProvided, aString)
                          .With(av => av.TrainingProvidedComment, aString)
                          .Create();

            var configurationService = new Mock <IConfigurationService>();

            configurationService.Setup(x => x.Get <CommonWebConfiguration>())
            .Returns(new CommonWebConfiguration {
                BlacklistedCategoryCodes = ""
            });
            configurationService.Setup(x => x.Get <RecruitWebConfiguration>())
            .Returns(new RecruitWebConfiguration {
                AutoSaveTimeoutInSeconds = autoSaveTimeoutInSeconds
            });
            var referenceDataService = new Mock <IReferenceDataService>();

            referenceDataService.Setup(m => m.GetSectors()).Returns(sectorList);
            var providerService = new Mock <IProviderService>();

            providerService.Setup(ps => ps.GetProvider(ukprn, true)).Returns(new Provider());

            var vacancyPostingService = new Mock <IVacancyPostingService>();
            var currentUserService    = new Mock <ICurrentUserService>();

            currentUserService.Setup(cus => cus.CurrentUserName).Returns(userName);
            var dateTimeService = new Mock <IDateTimeService>();

            dateTimeService.Setup(dts => dts.UtcNow).Returns(utcNow);
            var vacancylockingService = new Mock <IVacancyLockingService>();

            vacancylockingService.Setup(vls => vls.IsVacancyAvailableToQABy(userName, vacancy)).Returns(true);

            //Arrange: get AV, update retrieved AV with NVVM, save modified AV returning same modified AV, map AV to new NVVM with same properties as input
            vacancyPostingService.Setup(
                vps => vps.GetVacancyByReferenceNumber(vacancyReferenceNumber)).Returns(vacancy);

            vacancyPostingService.Setup(vps => vps.UpdateVacancy(It.IsAny <Vacancy>())).Returns((Vacancy av) => av);

            var mapper = new Mock <IMapper>();

            mapper.Setup(m => m.Map <Vacancy, TrainingDetailsViewModel>(It.IsAny <Vacancy>()))
            .Returns((Vacancy av) => viewModel);

            var vacancyProvider =
                new VacancyProviderBuilder().With(vacancyPostingService)
                .With(providerService)
                .With(configurationService)
                .With(referenceDataService)
                .With(mapper)
                .With(currentUserService)
                .With(dateTimeService)
                .With(vacancylockingService)
                .Build();

            var expectedResult = new QAActionResult <TrainingDetailsViewModel>(QAActionResultCode.Ok, viewModel);

            //Act
            var result = vacancyProvider.UpdateVacancyWithComments(viewModel);

            //Assert
            vacancyPostingService.Verify(
                vps => vps.GetVacancyByReferenceNumber(viewModel.VacancyReferenceNumber.Value), Times.Once);
            vacancyPostingService.Verify(
                vps =>
                vps.UpdateVacancy(
                    It.Is <Vacancy>(av => av.VacancyReferenceNumber == viewModel.VacancyReferenceNumber &&
                                    av.QAUserName == userName && av.DateStartedToQA == utcNow)));
            result.ShouldBeEquivalentTo(expectedResult);
        }
Beispiel #22
0
 public VacancyViewModelBuilder With(TrainingDetailsViewModel trainingDetailsViewModel)
 {
     _trainingDetailsViewModel = trainingDetailsViewModel;
     return(this);
 }
        public MediatorResponse <TrainingDetailsViewModel> SelectStandardAsTrainingType(TrainingDetailsViewModel viewModel)
        {
            viewModel.TrainingType         = TrainingType.Standards;
            viewModel.StandardId           = null;
            viewModel.SectorCodeName       = null;
            viewModel.ApprenticeshipLevel  = ApprenticeshipLevel.Unknown;
            viewModel.Standards            = _vacancyQaProvider.GetStandards();
            viewModel.SectorsAndFrameworks = _vacancyQaProvider.GetSectorsAndFrameworks();
            viewModel.Sectors = _vacancyQaProvider.GetSectors();

            return(GetMediatorResponse(VacancyMediatorCodes.SelectStandardAsTrainingType.Ok, viewModel));
        }