private QualificationService CreateQualificationService()
        {
            var userId  = Guid.Parse(User.Identity.GetUserId());
            var service = new QualificationService(userId);

            return(service);
        }
 public AddQualificationView(QualificationService qualificationService, QualificationListViewModel qualificationListViewModel) : this()
 {
     _qualificationService       = qualificationService;
     _qualificationListViewModel = qualificationListViewModel;
     _qualificationToAdd         = new AddQualificationViewModel(_qualificationService);
     DataContext = _qualificationToAdd;
 }
示例#3
0
        public async Task GetQualificationsOnlineSucessNoItemsTest()
        {
            // Create the fake stockFeed:
            IQualificationDataService qualificationDataService =
                new StubIQualificationDataService
            {
                GetQualificationsString = s =>
                {
                    return(Task.Run(() => new DataResult <List <IQualification> >(Result.Ok)));
                }
            };
            IQualificationLocalStorageDataService qualificationLocalStorage =
                new StubIQualificationLocalStorageDataService
            {
                GetSavedQualifications = () =>
                {
                    return(Task.Run(() => new List <IQualification>()));
                },
                GetETag = () => null,
                SaveQualificationsListOfIQualification = list => { },
                SaveETagString = s => { }
            };
            var service       = new QualificationService(qualificationDataService, qualificationLocalStorage);
            var qualification = await service.GetQualifications();

            Assert.IsTrue(qualification.IsOk);
            Assert.IsTrue(qualification.Result == Result.Ok);
        }
        // GET: Qualification
        public ActionResult Index()
        {
            var userId  = Guid.Parse(User.Identity.GetUserId());
            var service = new QualificationService(userId);
            var model   = service.GetQualifications();

            return(View(model));
        }
示例#5
0
        public EditQualificationViewModel(QualificationViewModel qualificationToEdit, QualificationService qualificationService)
        {
            _qualificationService = qualificationService;
            QualificationToEdit   = qualificationToEdit;

            QualificationId = qualificationToEdit.QualificationId;
            CopyEditableFields(qualificationToEdit);
        }
        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();
        }
示例#7
0
        public AddOpeningViewModel(OpeningService openingService, CompanyService companyService, QualificationService qualificationService)
        {
            _openingService       = openingService;
            _companyService       = companyService;
            _qualificationService = qualificationService;

            Companies      = new ObservableCollection <DataLayer.EfClasses.Company>(_companyService.GetCompanies());
            Qualifications = new ObservableCollection <DataLayer.EfClasses.Qualification>(_qualificationService.GetQualifications());

            SelectedCompany       = Companies.First();
            SelectedQualification = Qualifications.First();
        }
        public QualificationListViewModel(QualificationService qualificationService)
        {
            _qualificationService = qualificationService;

            QualificationList = new ObservableCollection <QualificationViewModel>(
                _qualificationService.GetQualifications().Select(c =>
                                                                 new QualificationViewModel(c)));

            if (QualificationList.Count > 0)
            {
                SelectedQualification = QualificationList.First();
            }
        }
        public AddOpeningView(OpeningListViewModel openingListViewModel,
                              OpeningService openingService,
                              CompanyService companyService,
                              QualificationService qualificationService) : this()
        {
            _openingListViewModel = openingListViewModel;
            _openingService       = openingService;
            _companyService       = companyService;
            _qualificationService = qualificationService;

            _openingToAdd = new AddOpeningViewModel(_openingService, _companyService, _qualificationService);
            DataContext   = _openingToAdd;
        }
示例#10
0
        public When_QualificationService_Is_Called_To_SearchShortTitle_By_Ignored_Word()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(QualificationMapper).Assembly));
            var mapper = new Mapper(config);

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

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

            var service = new QualificationService(mapper, _repository, qualificationRouteMappingRepository, learningAimReferenceRepository);

            _searchResults = service.SearchShortTitleAsync("the").GetAwaiter().GetResult();
        }
        public When_QualificationService_Is_Called_To_Check_IsValidLarId_With_Invalid_Lar_Id()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(QualificationMapper).Assembly));
            var mapper = new Mapper(config);

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

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

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

            _result = qualificationService.IsValidLarIdAsync("12345").GetAwaiter().GetResult();
        }
示例#12
0
        public EditOpeningViewModel(OpeningViewModel openingToEdit,
                                    OpeningService openingService,
                                    CompanyService companyService,
                                    QualificationService qualificationService)
        {
            OpeningToEdit         = openingToEdit;
            _openingService       = openingService;
            _companyService       = companyService;
            _qualificationService = qualificationService;

            Companies      = new ObservableCollection <DataLayer.EfClasses.Company>(companyService.GetCompanies());
            Qualifications = new ObservableCollection <DataLayer.EfClasses.Qualification>(qualificationService.GetQualifications());

            SelectedCompany       = Companies.First(c => c.CompanyName == openingToEdit.CompanyName);
            SelectedQualification = Qualifications.First(c => c.QualificationCode == openingToEdit.Qualification);

            CopyEditableFields(openingToEdit);
        }
示例#13
0
        public MainWindow()
        {
            InitializeComponent();

            // GenerateMockData.GenerateAllData();

            MainContext = new TecContext();

            _candidateService       = new CandidateService(MainContext);
            _candidateListViewModel = new CandidateListViewModel(_candidateService);

            _companyService       = new CompanyService(MainContext);
            _companyListViewModel = new CompanyListViewModel(_companyService);

            _qualificationService       = new QualificationService(MainContext);
            _qualificationListViewModel = new QualificationListViewModel(_qualificationService);

            _jobHistoryService       = new JobHistoryService(MainContext);
            _jobHistoryListViewModel = new JobHistoryListViewModel(_jobHistoryService);

            _placementService       = new PlacementService(MainContext);
            _placementListViewModel = new PlacementListViewModel(_placementService);

            _openingService       = new OpeningService(MainContext);
            _openingListViewModel = new OpeningListViewModel(_openingService);

            _courseService       = new CourseService(MainContext);
            _courseListViewModel = new CourseListViewModel(_courseService);

            _trainingSessionService       = new TrainingSessionService(MainContext);
            _scheduleService              = new ScheduleService(MainContext);
            _trainingSessionListViewModel = new TrainingSessionListViewModel(_trainingSessionService);


            CandidateTab.DataContext     = _candidateListViewModel;
            CompanyTab.DataContext       = _companyListViewModel;
            QualificationTab.DataContext = _qualificationListViewModel;
            HistoryTab.DataContext       = _jobHistoryListViewModel;
            OpeningTab.DataContext       = _openingListViewModel;
            PlacementTab.DataContext     = _placementListViewModel;
            CourseTab.DataContext        = _courseListViewModel;
            SessionTab.DataContext       = _trainingSessionListViewModel;
        }
示例#14
0
        public async Task GetAllAsyncWhenNoQualificationsReturnsEmptyCollection()
        {
            //Arrange
            var mockQualificationRepository = GetDefaultIQualificationRepositoryInstance();
            var mockUnitOfWork  = GetDefaultIUnitOfWorkInstance();
            var qualificationId = 200;

            mockQualificationRepository.Setup(r => r.FindById(qualificationId))
            .Returns(Task.FromResult <Qualification>(null));

            var service = new QualificationService(mockQualificationRepository.Object, mockUnitOfWork.Object);
            //Act
            QualificationResponse result = await service.GetByIdAsync(qualificationId);

            var message = result.Message;

            //Assert
            message.Should().Be("Qualification not found");
        }
示例#15
0
        public When_QualificationService_Is_Called_To_Search_With_No_Results()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(QualificationMapper).Assembly));
            var mapper = new Mapper(config);

            var logger = Substitute.For <ILogger <GenericRepository <Domain.Models.Qualification> > >();

            using var dbContext = InMemoryDbContext.Create();
            dbContext.AddRange(new ValidQualificationListBuilder()
                               .Build());
            dbContext.SaveChanges();

            var repository = new GenericRepository <Domain.Models.Qualification>(logger, dbContext);

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

            var service = new QualificationService(mapper, repository, qualificationRouteMappingRepository,
                                                   learningAimReferenceRepository);

            _searchResult = service.SearchQualificationAsync("No Qualification Exists").GetAwaiter().GetResult();
        }
示例#16
0
        public When_QualificationService_Is_Called_To_SearchQualifications()
        {
            var config = new MapperConfiguration(c => c.AddMaps(typeof(QualificationMapper).Assembly));
            var mapper = new Mapper(config);

            var qlogger   = Substitute.For <ILogger <GenericRepository <Domain.Models.Qualification> > >();
            var qrmlogger = Substitute.For <ILogger <GenericRepository <QualificationRouteMapping> > >();

            using var dbContext = InMemoryDbContext.Create();
            dbContext.AddRange(new ValidQualificationListBuilder().Build());
            dbContext.AddRange(
                new QualificationRouteMapping
            {
                RouteId         = 1,
                QualificationId = 1
            },
                new QualificationRouteMapping
            {
                RouteId         = 1,
                QualificationId = 2
            },
                new QualificationRouteMapping
            {
                RouteId         = 1,
                QualificationId = 3
            });

            dbContext.SaveChanges();

            var qualificationRepo = new GenericRepository <Domain.Models.Qualification>(qlogger, dbContext);
            var routeMappingRepo  = new GenericRepository <QualificationRouteMapping>(qrmlogger, dbContext);

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

            var service = new QualificationService(mapper, qualificationRepo, routeMappingRepo, learningAimReferenceRepository);

            _searchResults = service.SearchQualificationAsync("Scientific Reasoning").GetAwaiter().GetResult();
        }
示例#17
0
        public async Task GetQualificationsOnlineSucessWithItemsTest()
        {
            var qualificationMock = Ioc.Container.Resolve <IQualification>();

            qualificationMock.Name = "test1";
            var qualificationList = new List <IQualification>();

            qualificationList.Add(qualificationMock);

            IQualificationDataService qualificationDataService =
                new StubIQualificationDataService
            {
                GetQualificationsString = s =>
                {
                    return(Task.Run(() => new DataResult <List <IQualification> >(qualificationList)));
                }
            };

            IQualificationLocalStorageDataService qualificationLocalStorage =
                new StubIQualificationLocalStorageDataService
            {
                GetSavedQualifications = () =>
                {
                    return(Task.Run(() => new List <IQualification>()));
                },
                GetETag = () => null,
                SaveQualificationsListOfIQualification = list => { },
                SaveETagString = s => { }
            };

            var service       = new QualificationService(qualificationDataService, qualificationLocalStorage);
            var qualification = await service.GetQualifications();

            Assert.IsTrue(qualification.IsOk);
            Assert.IsTrue(qualification.Result == Result.Ok);
            Assert.IsTrue(qualification.Data.Count > 0);
        }
 public QualificationsController()
 {
     Service = new QualificationService();
 }
示例#19
0
 public EditOpeningView(OpeningViewModel editOpening, OpeningService openingService, CompanyService companyService, QualificationService qualificationService) : this()
 {
     _openingToEdit = new EditOpeningViewModel(editOpening, openingService, companyService, qualificationService);
     DataContext    = _openingToEdit;
 }
 public AddQualificationViewModel(QualificationService qualificationService)
 {
     _qualificationService = qualificationService;
 }
 public EditQualificationView(QualificationViewModel editQualification, QualificationService qualificationService) : this()
 {
     _editQualification = new EditQualificationViewModel(editQualification, qualificationService);
     DataContext        = _editQualification;
 }
示例#22
0
        public When_QualificationService_Is_Called_To_UpdateQualification()
        {
            var httpContextAccessor = Substitute.For <IHttpContextAccessor>();

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

            var dateTimeProvider = Substitute.For <IDateTimeProvider>();

            dateTimeProvider.UtcNow().Returns(new DateTime(2019, 1, 1));

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

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

            _qualificationRepository = Substitute.For <IRepository <Domain.Models.Qualification> >();
            _qualificationRepository
            .GetSingleOrDefaultAsync(Arg.Any <Expression <Func <Domain.Models.Qualification, bool> > >())
            .Returns(new ValidQualificationBuilder().Build());

            _qualificationRouteMappingRepository = Substitute.For <IRepository <QualificationRouteMapping> >();
            _qualificationRouteMappingRepository
            .GetManyAsync(Arg.Any <Expression <Func <QualificationRouteMapping, bool> > >())
            .Returns(new List <QualificationRouteMapping>
            {
                new QualificationRouteMapping
                {
                    Id = 101,
                    QualificationId = 1,
                    RouteId         = 1
                },
                new QualificationRouteMapping
                {
                    Id = 102,
                    QualificationId = 1,
                    RouteId         = 2
                }
            }.AsQueryable());

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

            //Set up routes 1 and 2 in the database,
            //then 2 and 3 selected in the view model.
            //Should end up with mapping for route 1 deleted
            //and route 3 added

            var viewModel = new SaveQualificationViewModel
            {
                QualificationId = 1,
                Title           = "Title",
                ShortTitle      = "Modified Short Title",
                Source          = "Test",
                Routes          = new List <RouteSummaryViewModel>
                {
                    new RouteSummaryViewModel
                    {
                        Id         = 1,
                        Name       = "Route 1",
                        IsSelected = false
                    },
                    new RouteSummaryViewModel
                    {
                        Id         = 2,
                        Name       = "Route 2",
                        IsSelected = true
                    },
                    new RouteSummaryViewModel
                    {
                        Id         = 3,
                        Name       = "Route 1",
                        IsSelected = true
                    }
                }
            };

            qualificationService.UpdateQualificationAsync(viewModel).GetAwaiter().GetResult();
        }
 public QualificationsController()
 {
     Service = new QualificationService();
 }