internal IInterview FindInterview(IInterview i) { var query = repo.Interviews.AsQueryable(); query = BuildFindInterviewQuery(i, query); return(FindAResult(query)); }
internal ICollection <Interview> FindMultipleInterviews(IInterview i) { var query = repo.Interviews.AsQueryable(); query = BuildFindInterviewQuery(i, query); return(FindMultipleResults(query)); }
internal bool DeleteInterview(IInterview i) { EntityEntry entry = null; EntityState state = EntityState.Unchanged; entry = repo.Remove(i); state = CheckEntryState(state, entry); return(VerifyEntryState(state, EntityState.Deleted)); }
internal bool UpdateInterview(IInterview i) { EntityEntry entry = null; EntityState state = EntityState.Unchanged; entry = repo.Update(i); state = CheckEntryState(state, entry); return(VerifyEntryState(state, EntityState.Modified)); }
internal bool AddInterview(IInterview i) { EntityEntry entry = null; EntityState state = EntityState.Unchanged; entry = repo.Add(i); state = CheckEntryState(state, entry); return(VerifyEntryState(state, EntityState.Added)); }
private IQueryable <Interview> BuildFindInterviewQuery(IInterview i, IQueryable <Interview> query) { if (i.Interviewer != null) { if (!i.Interviewer.Email.IsNullOrEmpty()) { query = query.Where(x => x.Interviewer.Email.Contains(i.Interviewer.Email)); } if (!i.Interviewer.Name.IsNullOrEmpty()) { query = query.Where(x => x.Interviewer.Name.Contains(i.Interviewer.Name)); } if (!i.Interviewer.Department.IsNullOrEmpty()) { query = query.Where(x => x.Interviewer.Department.Contains(i.Interviewer.Department)); } } if (i.Applicant != null) { if (!i.Applicant.Email.IsNullOrEmpty()) { query = query.Where(x => x.Applicant.Email.Contains(i.Applicant.Email)); } if (!i.Applicant.Name.IsNullOrEmpty()) { query = query.Where(x => x.Applicant.Name.Contains(i.Applicant.Name)); } if (!i.Applicant.Country.IsNullOrEmpty()) { query = query.Where(x => x.Applicant.Country.Contains(i.Applicant.Country)); } if (i.Applicant.MailAttempts != default(int)) { query = query.Where(x => x.Applicant.MailAttempts == i.Applicant.MailAttempts); } } if (i.Appointment != null) { if (i.Appointment.From != default(DateTime)) { query = query.Where(x => x.Appointment.From.Date == i.Appointment.From.Date); } if (i.Appointment.To != default(DateTime)) { query = query.Where(x => x.Appointment.To.Date == i.Appointment.To.Date); } } return(query); }
private void CompareInterviewDate(IInterview interview) { if (interview.Date == null && interview.EndDate == null) { return; } var candidate = candidateRepository.Read(interview.Candidate); bool Intersection(IInterview x) => (interview.Id != x.Id) && ((interview.Date > x.Date && interview.Date < x.EndDate) || (interview.EndDate <x.EndDate && interview.EndDate> x.Date)); var generalInterviews = candidate.GeneralInterviews.Where(Intersection); if (generalInterviews != null && generalInterviews.Count() != 0) { throw new Exception("Not valid time"); } var techInterviews = candidate.TechInterviews.Where(Intersection); if (techInterviews != null && techInterviews.Count() != 0) { throw new Exception("Not valid time"); } if (interview.Id == 0 && interview.Status == InterviewStatuses.Active) { return; } if (interview.Date > candidate.CustomerInterviewDate && interview.Date < candidate.CustomerInterviewEndDate) { throw new Exception("Not valid time"); } if (interview.EndDate < candidate.CustomerInterviewEndDate && interview.EndDate > candidate.CustomerInterviewDate) { throw new Exception("Not valid time"); } }
public IInterview SetNext(IInterview interviewee) { _nextInterview = interviewee; return(interviewee); }