private static void NotWorkingUpdateOnNullOwnedType(DbContextOptions <CandidateDbContext> builderOptions)
        {
            long?candidateId = null;

            using (var dbContext = new CandidateDbContext(builderOptions))
            {
                var candidate = new Candidate()
                {
                    FirstName = "FirstName"
                };

                dbContext.Add(candidate);
                dbContext.SaveChanges();
                candidateId = candidate.Id;
            }

            using (var dbContext = new CandidateDbContext(builderOptions))
            {
                var candidate = dbContext.Candidates.SingleOrDefault(c => c.Id == candidateId);

                if (candidate != null)
                {
                    candidate.Address = new Address()
                    {
                        Street     = "Street2",
                        PostalCode = "Postal2"
                    };
                    dbContext.SaveChanges();
                }
            }
        }
 public void Update(Candidate candidate)
 {
     using var context = new CandidateDbContext(_connectionString);
     context.Candidates.Attach(candidate);
     context.Entry(candidate).State = EntityState.Modified;
     context.SaveChanges();
 }
Esempio n. 3
0
 public static void Initialize()
 {
     Database.SetInitializer(new DbInitializer());
     using (var db = new CandidateDbContext())
     {
         db.Database.Initialize(true);
     }
 }
        public CandidateRepositoryTests()
        {
            var contextOptions = new DbContextOptionsBuilder <CandidateDbContext>()
                                 .UseSqlite("Data Source = test-database.db")
                                 .Options;

            _context = new CandidateDbContext(contextOptions);
            _repo    = new CandidateRepository(_context);

            EnsureTestDataExists();
        }
        public List <Status> GetStatuses()
        {
            using var context = new CandidateDbContext(_connectionString);
            var statuses = new List <Status>();

            foreach (Candidate c in context.Candidates)
            {
                statuses.Add(c.Status);
            }
            return(statuses);
        }
 public bool SaveQualification(CandidateDbContext context, Qualification qualification)
 {
     try
     {
         context.Qualifications.Add(qualification);
         context.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
        public List <CandidateDTO> GetCandidates(CandidateDbContext _context, CandidateSearchParams searchParams)
        {
            {
                if (searchParams != null && _context != null)
                {
                    var candidates     = _context.Candidates;
                    var qualifications = _context.Qualifications;

                    var candidateDTOs = (from candidate in candidates
                                         select new CandidateDTO()
                    {
                        FirstName = candidate.FirstName,
                        LastName = candidate.LastName,
                        Email = candidate.Email,
                        ZipCode = candidate.ZipCode,
                        PhoneNumber = candidate.PhoneNumber,
                        ID = candidate.ID,
                        Qualifications = (from qualification in qualifications
                                          where qualification.CandidateID == candidate.ID
                                          select new QualificationDTO()
                        {
                            DateStarted = qualification.DateStarted,
                            DateCompleted = qualification.DateCompleted,
                            Name = qualification.Name,
                            ID = qualification.ID,
                            Type = qualification.Type,
                            CandidateID = candidate.ID
                        }).ToList()
                    }).ToList();
                    var filteredCandidateDTOs = candidateDTOs.Where(c => (string.IsNullOrEmpty(searchParams.FirstName) || c.FirstName.ToLower().Contains(searchParams.FirstName.ToLower())) &&
                                                                    (string.IsNullOrEmpty(searchParams.LastName) || c.LastName.ToLower().Contains(searchParams.LastName.ToLower())) &&
                                                                    (string.IsNullOrEmpty(searchParams.Email) || c.Email.ToLower().Contains(searchParams.Email.ToLower())) &&
                                                                    (string.IsNullOrEmpty(searchParams.PhoneNumber) || c.PhoneNumber == searchParams.PhoneNumber) &&
                                                                    (string.IsNullOrEmpty(searchParams.ZipCode) || c.ZipCode == searchParams.ZipCode)
                                                                    // if dont have qualification search params, dont care about candidate qualifications
                                                                    && (searchParams.QualificationSearchParams == null
                                                                    // otherwise filter qualifications
                                                                        || (c.Qualifications != null && c.Qualifications.Any(q => (searchParams.QualificationSearchParams.Date == null || (q.DateStarted < searchParams.QualificationSearchParams.Date) && (q.DateCompleted > searchParams.QualificationSearchParams.Date)) &&
                                                                                                                             (searchParams.QualificationSearchParams.Type == null || q.Type?.ToLower() == searchParams.QualificationSearchParams.Type?.ToLower())
                                                                                                                             // Was going to allow muliple names to be filtered in one query, but ran out of time to implement in UI
                                                                                                                             && (searchParams.QualificationSearchParams.CertificationNames == null || searchParams.QualificationSearchParams?.CertificationNames?.Count() == 0 || (q.Name != null && q.Name.Contains(searchParams?.QualificationSearchParams?.CertificationNames[0])))
                                                                                                                             ))
                                                                        )).ToList();


                    return(filteredCandidateDTOs.Count > 0? filteredCandidateDTOs : new List <CandidateDTO>());
                }

                return(new List <CandidateDTO>());
            }
        }
        public bool SaveCandidates(CandidateDbContext context, Candidate candidate)
        {
            try
            {
                context.Candidates.Add(candidate);
                context.SaveChanges();
                return(true);
            }

            catch (Exception e)
            {
                return(false);
            }
        }
Esempio n. 9
0
        private static void AddTestDataToDatabase(CandidateDbContext context)
        {
            var jsonString  = File.ReadAllText("test-database.json");
            var jsonOptions = new JsonSerializerOptions {
                PropertyNameCaseInsensitive = true
            };

            jsonOptions.Converters.Add(new DateTimeConverter());
            var testData = JsonSerializer.Deserialize <Models.Candidate[]>(jsonString, jsonOptions);

            for (int i = 0; i < testData.Length; i++)
            {
                var candidate = context.Candidates.Add(new Candidate
                {
                    Id        = testData[i].Id,
                    RoleId    = testData[i].RoleId,
                    Firstname = testData[i].Firstname,
                    Lastname  = testData[i].Lastname,
                });

                context.Assessments.Add(new Assessment
                {
                    AssessmentType   = AssessmentType.Behaviour,
                    SentOn           = testData[i].BehaviourAssessment.SentOn,
                    CompletedOn      = testData[i].BehaviourAssessment.CompletedOn,
                    WorkingStrengths = testData[i].BehaviourAssessment.WorkingStrengths,
                    Candidate        = candidate.Entity
                });

                context.Assessments.Add(new Assessment
                {
                    AssessmentType    = AssessmentType.Aptitude,
                    SentOn            = testData[i].AptitudeAssessment.SentOn,
                    CompletedOn       = testData[i].AptitudeAssessment.CompletedOn,
                    TrainabilityIndex = testData[i].AptitudeAssessment.TrainabilityIndex,
                    Candidate         = candidate.Entity
                });
            }
            context.SaveChanges();
        }
Esempio n. 10
0
 public PositionService(CandidateDbContext context)
 {
     _context = context;
 }
 public LevelRepository(CandidateDbContext context)
 {
     _context = context;
 }
Esempio n. 12
0
 public CandidateService(CandidateDbContext context)
 {
     _context = context;
 }
Esempio n. 13
0
 public PositionRepository(CandidateDbContext context)
 {
     _context = context;
 }
 public CandidateController(CandidateDbContext context)
 {
     _context = context;
 }
 public Candidate GetCandidateById(int id)
 {
     using var context = new CandidateDbContext(_connectionString);
     return(context.Candidates.FirstOrDefault(c => c.Id == id));
 }
 public List <Candidate> GetCandidateByStatus(Status status)
 {
     using var context = new CandidateDbContext(_connectionString);
     return(context.Candidates.Where(c => c.Status == status).ToList());
 }
 public void AddCandidate(Candidate candidate)
 {
     using var context = new CandidateDbContext(_connectionString);
     context.Candidates.Add(candidate);
     context.SaveChanges();
 }
Esempio n. 18
0
 public LevelService(CandidateDbContext context)
 {
     _context = context;
 }