예제 #1
0
        public Campaign CampaignDTOCreateToCampaign(CampaignDTO_Create campaignDTO)
        {
            var campaign = Campaign.CreateNewCampaign(
                campaignDTO.Name,
                campaignDTO.Client,
                campaignDTO.StartDate,
                campaignDTO.EndDate);

            return(campaign);
        }
예제 #2
0
        public async void GivenCreateNewCampaign_whenCreatingANewCampaign_ThenCampaignIsCreated()
        {
            var testCampaign = Campaign.CreateNewCampaign("java", "VAB", new DateTime(2018, 04, 21), new DateTime(2018, 06, 22));

            using (var context = new SwitchFullyIntakeAppContext(CreateNewInMemoryDatabase()))
            {
                var log     = new LoggerManager();
                var repo    = new CampaignRepository(context);
                var service = new CampaignService(repo, log);
                var result  = await service.CreateNewCampaign(testCampaign);

                Assert.True(context.Campaigns.SingleOrDefaultAsync(r => r.CampaignId == testCampaign.CampaignId) != null);
            }
        }
예제 #3
0
        public async void GivenGetSingleCampaignUnHappyPath_whenASingleCampaignIsRequestedAndNotFound_ReturnTheCampaign()
        {
            var testCampaign = Campaign.CreateNewCampaign("java", "VAB", new DateTime(2018, 04, 21), new DateTime(2018, 06, 22));

            using (var context = new SwitchFullyIntakeAppContext(CreateNewInMemoryDatabase()))
            {
                var log     = new LoggerManager();
                var repo    = new CampaignRepository(context);
                var service = new CampaignService(repo, log);
                var result  = await service.GetSingleCampaignByID(Guid.NewGuid().ToString());

                Assert.Null(result);
            }
        }
        public void GivenCampaignToCampaignDTOReturn_WhenCreatingACampaignDTOReturnFromCampaign_ThenCampaignDTOReturnIsCreated()
        {
            Campaign campaign = Campaign.CreateNewCampaign(
                "java",
                "vab",
                new DateTime(2018, 06, 21),
                new DateTime(2018, 09, 25));

            var campaignMapper = new CampaignMapper();
            var result         = campaignMapper.CampaignToCampaignDTOReturn(campaign);

            Assert.Equal("java", result.Name);
            Assert.Equal("vab", result.Client);
            Assert.True(result.Status == false);
        }
예제 #5
0
        public async void GivenGetSingleCampaignHappyPath_whenASingleCampaignIsRequested_ReturnTheCampaign()
        {
            var testCampaign = Campaign.CreateNewCampaign("java", "VAB", new DateTime(2018, 04, 21), new DateTime(2018, 06, 22));

            using (var context = new SwitchFullyIntakeAppContext(CreateNewInMemoryDatabase()))
            {
                context.Campaigns.Add(testCampaign);
                await context.SaveChangesAsync();

                var log     = new LoggerManager();
                var repo    = new CampaignRepository(context);
                var service = new CampaignService(repo, log);
                var result  = await service.GetSingleCampaignByID(testCampaign.CampaignId.ToString());

                Assert.Equal(testCampaign.CampaignId.ToString(), result.CampaignId.ToString());
            };
        }
예제 #6
0
        public async void GivenGetAllCampaigns_whenAllCampaignsRequested_ReturnAllCampaigns()
        {
            var testCampaign = Campaign.CreateNewCampaign("java", "VAB", new DateTime(2018, 04, 21), new DateTime(2018, 06, 22));

            using (var context = new SwitchFullyIntakeAppContext(CreateNewInMemoryDatabase()))
            {
                context.Campaigns.Add(testCampaign);
                await context.SaveChangesAsync();

                var log     = new LoggerManager();
                var repo    = new CampaignRepository(context);
                var service = new CampaignService(repo, log);
                var result  = await service.GetAllCampaigns();

                Assert.IsType <List <Campaign> >(result);
                Assert.NotEmpty(result);
            };
        }
예제 #7
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity <User>()
            .ToTable("Users")
            .HasKey(u => u.Id);

            modelBuilder.Entity <User>()
            .OwnsOne(u => u.Email,
                     email => { email.Property(prop => prop.Address).HasColumnName("Email"); }
                     );

            modelBuilder.Entity <User>()
            .OwnsOne(u => u.SecurePassword,
                     securePass =>
            {
                securePass.Property(prop => prop.PasswordHash).HasColumnName("PassWord");
                securePass.Property(prop => prop.Salt).HasColumnName("SecPass");
            });

            modelBuilder.Entity <User>(u =>
            {
                var userId = Guid.NewGuid();
                u.HasData(new
                {
                    Id        = userId,
                    FirstName = "test",
                    LastName  = "user",
                    RoleId    = 1,
                });
                u.OwnsOne(m => m.Email).HasData(new
                {
                    UserId  = userId,
                    Address = "*****@*****.**"
                });
                var temp = new UserSecurity("r5iPEDa9yVsW9s1Jr7j3fEpepSjT+oLu+4gUG6o7sMI=", "nhSRFAcAR6lgnY40PZi4iw==");
                u.OwnsOne(us => us.SecurePassword).HasData(new
                {
                    UserId       = userId,
                    PassWordHash = "r5iPEDa9yVsW9s1Jr7j3fEpepSjT+oLu+4gUG6o7sMI=",
                    Salt         = "nhSRFAcAR6lgnY40PZi4iw=="
                });
            });

            modelBuilder.Entity <Candidate>()
            .ToTable("Candidates")
            .HasKey(c => c.Id);

            modelBuilder.Entity <Candidate>()
            .OwnsOne(c => c.Email,
                     email => { email.Property(prop => prop.Address).HasColumnName("Email"); }
                     );

            modelBuilder.Entity <Campaign>()
            .ToTable("Campaign")
            .HasKey(key => key.CampaignId);

            modelBuilder.Entity <Campaign>()
            .Ignore(prop => prop.Status)
            .HasData(
                Campaign.CreateNewCampaign("asp.net", "CM", new DateTime(2019, 01, 01), new DateTime(2019, 05, 30)),
                Campaign.CreateNewCampaign("java", "Cegeka", new DateTime(2019, 01, 01), new DateTime(2019, 05, 30)),
                Campaign.CreateNewCampaign("asp.net", "OZ", new DateTime(2019, 01, 01), new DateTime(2019, 05, 30))
                );

            modelBuilder.Entity <JobApplication>()
            .ToTable("JobApplication")
            .HasKey(jp => jp.Id);

            modelBuilder.Entity <JobApplication>()
            .HasOne(jp => jp.Candidate)
            .WithMany()
            .HasForeignKey(jp => jp.CandidateId)
            .OnDelete(DeleteBehavior.Restrict);

            modelBuilder.Entity <JobApplication>()
            .HasOne(jp => jp.Campaign)
            .WithMany()
            .HasForeignKey(jp => jp.CampaignId)
            .OnDelete(DeleteBehavior.Restrict);

            modelBuilder.Entity <JobApplication>()
            .HasOne(jp => jp.Status)
            .WithMany()
            .HasForeignKey(jp => jp.StatusId)
            .OnDelete(DeleteBehavior.Restrict);

            modelBuilder.Entity <JobApplication>()
            .HasOne(jp => jp.CV)
            .WithMany()
            .HasForeignKey(jp => jp.CvId)
            .OnDelete(DeleteBehavior.Restrict);

            modelBuilder.Entity <JobApplication>()
            .HasOne(jp => jp.Motivation)
            .WithMany()
            .HasForeignKey(jp => jp.MotivationId)
            .OnDelete(DeleteBehavior.Restrict);

            modelBuilder.Entity <File>()
            .ToTable("Files")
            .HasKey(fu => fu.Id);

            modelBuilder.Entity <Status>()
            .HasData(
                new Status(1, "Inactive"),
                new Status(2, "Active"),
                new Status(3, "Rejected"),
                new Status(4, "Accepted")
                );

            modelBuilder.Entity <Screening>()
            .ToTable("Screening")
            .HasKey(screeningKey => new
            {
                screeningKey.JobApplicationId,
                screeningKey.Name
            });

            modelBuilder.Entity <Screening>()
            .HasDiscriminator <string>("screeningType");

            modelBuilder.Entity <CV_Screening>();
            modelBuilder.Entity <FinalDecision_Screening>();
            modelBuilder.Entity <FirstInterview_Screening>();
            modelBuilder.Entity <GroupInterview_Screening>();
            modelBuilder.Entity <Phone_Screening>();
            modelBuilder.Entity <TestResults_Screening>();

            modelBuilder.Entity <Screening>()
            .HasOne(scr => scr.JobApplication)
            .WithMany(jp => jp.Screening)
            .HasForeignKey(j => j.JobApplicationId);

            base.OnModelCreating(modelBuilder);
        }