public List <Interviewer> GetAll() { using (var dbContext = new AARPDbContext()) { return(dbContext.Interviewers.ToList()); } }
public List <Interviewer> SearchInteviewer(string key) { using (var dbContext = new AARPDbContext()) { return(dbContext.Interviewers.Where(p => p.InterviewerName.ToLower().Contains(key.ToLower())).ToList()); } }
public TEntity[] GetList(Expression <Func <TEntity, bool> > predicate) { using (var dbContext = new AARPDbContext()) { return(dbContext.Set <TEntity>().Where(predicate).ToArray()); } }
public TEntity[] AddRange(TEntity[] entities) { using (var dbContext = new AARPDbContext()) { try { dbContext.Set <TEntity>().AddRange(entities); dbContext.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } } return(entities); }
public TEntity Get(int key) { using (var dbContext = new AARPDbContext()) { return(dbContext.Set <TEntity>().Find(key)); } }
public void Execute() { var report = new InterviewsEvaluationReportEmail(); using (var dbContext = new AARPDbContext()) { var lastDate = DateTime.Now.AddDays(-7); report.InterviewReportItems = (from i in dbContext.Interviews join ivr in dbContext.Interviewers on i.InterviewerId equals ivr.Id join iw in dbContext.Interviewees on i.IntervieweeId equals iw.Id join st in dbContext.InterviewStages on i.InterviewStageId equals st.Id join sn in dbContext.Seniorities on i.SeniorityId equals sn.Id where i.Date >= lastDate orderby i.Date descending select new EvaluationReportItem { interview = i, interviewee = iw, interviewer = ivr, seniority = sn, stage = st }).ToList(); } BackgroundEmailService.Create().Send(report); }
public TEntity[] GetList() { using (var dbContext = new AARPDbContext()) { return(dbContext.Set <TEntity>().ToArray()); } }
public Reviewer GetByEmail(string email) { using (var dbContext = new AARPDbContext()) { return(dbContext.Reviewers.FirstOrDefault(r => r.Email.ToLower().Contains(email.ToLower()))); } }
public Interviewer GetById(int id) { using (var dbContext = new AARPDbContext()) { return(dbContext.Interviewers.Where(p => p.Id == id).FirstOrDefault()); } }
public static IntervieweeProfileViewModel GetIntervieweeProfile(int intervieweeId) { var result = new IntervieweeProfileViewModel(); using (var dbContext = new AARPDbContext()) { var interviewee = dbContext.Interviewees.FirstOrDefault(x => x.Id == intervieweeId); if (interviewee != null) { var opening = dbContext.JobPositions.FirstOrDefault(x => x.Id == interviewee.OpeningID); var allInterviews = dbContext.Interviews.Where(x => x.IntervieweeId == intervieweeId).ToList(); result.IntervieweeName = interviewee.Name; result.IntervieweeID = intervieweeId; result.JobApplicationName = opening != null ? opening.Name : string.Empty; if (allInterviews.Count > 0) { result.Interview1 = new IntervieweeResponseViewModel(); var interviewer1Id = allInterviews[0].InterviewerId; result.Interview1.InterviewerName = dbContext.Interviewers.First(x => x.Id == interviewer1Id).InterviewerName; result.Interview1.Survey = GenerateSurveyResult(allInterviews[0]); } if (allInterviews.Count > 1) { result.Interview2 = new IntervieweeResponseViewModel(); var interviewer2Id = allInterviews[1].InterviewerId; result.Interview2.InterviewerName = dbContext.Interviewers.First(x => x.Id == interviewer2Id).InterviewerName; result.Interview2.Survey = GenerateSurveyResult(allInterviews[1]); } } } return(result); }
public static Models.Evaluations.Chart.Chart GetInterviewsChartData(DateRange period, int stageID = default(int)) { using (var dbContext = new AARPDbContext()) { var standingsResult = (from interview in dbContext.Interviews join ratings in dbContext.InterviewRatings on interview.RatingId equals ratings.Id where interview.Date >= period.dateFrom && interview.Date <= period.dateTo && (stageID > 0 ? interview.InterviewStageId == stageID : true) select new { interview.Id, interview.RatingId, ratings.Rating, }).Where(x => x.RatingId != 0).ToList(); Models.Evaluations.Chart.Chart _chart = new Models.Evaluations.Chart.Chart(); _chart.labels = standingsResult.Select(x => x.Rating.ToString()).ToArray(); _chart.datasets = new List <Datasets>(); List <Datasets> _dataSet = new List <Datasets>(); _dataSet.Add(new Datasets() { label = "Ratings", data = standingsResult.Select(x => x.RatingId).ToArray(), backgroundColor = new string[] { "#9068be", "#e62739", "#3fb0ac", "ba9077", "6534ff" }, // borderColor = new string[] { "#FF0000", "#800000", "#808000"}, borderWidth = "1" }); _chart.datasets = _dataSet; return(_chart); } }
public static InterviewsViewModel GetAllInterviewsList(InterviewsFiltersPostViewModel filters) { InterviewsViewModel result = new InterviewsViewModel(); if (filters.selectedstages == null) { filters.selectedstages = new List <int>(); } if (filters.selectedseniorities == null) { filters.selectedseniorities = new List <int>(); } using (var dbContext = new AARPDbContext()) { var interviewers = dbContext.Interviewers.ToList(); var interviewees = dbContext.Interviewees.ToList(); var stages = dbContext.InterviewStages.ToList(); var seniorities = dbContext.Seniorities.ToList(); var ratings = dbContext.InterviewRatings.ToList(); var interviews = dbContext.Interviews.Where(x => filters.selectedstages.Contains(x.InterviewStageId) && filters.selectedseniorities.Contains(x.SeniorityId) && (filters.dateFrom != null ? x.Date >= filters.dateFrom : true) && (filters.dateTo != null ? x.Date <= filters.dateTo : true) ); foreach (var interview in interviews) { InterviewViewModel interviewVM = new InterviewViewModel(); var target = interviewers.FirstOrDefault(f => f.Id == interview.InterviewerId); if (target != null) { interviewVM.Interviewer = interviewers.Where(x => x.Id == interview.InterviewerId).First().InterviewerName; interviewVM.Interviewee = interviewees.Where(x => x.Id == interview.IntervieweeId).First().Name; interviewVM.IntervieweeID = interviewees.Where(x => x.Id == interview.IntervieweeId).First().Id; interviewVM.InterviewDate = interview.Date; interviewVM.InterviewStage = stages.Where(x => x.Id == interview.InterviewStageId).First().Stage; interviewVM.InterviewStatus = interview.SurveyStatus; var seniority = seniorities.FirstOrDefault(x => x.Id == interview.SeniorityId); if (seniority != null) { interviewVM.Seniority = seniority.SeniorityName; } interviewVM.Rating = interview.RatingId > 0 ? ratings.Where(x => x.Id == interview.RatingId).First().Rating : 0; result.Interviews.Add(interviewVM); } } } return(result); }
public Reviewer[] GetWorkingReviewers(CommonConfigs commonConfigs) { using (var dbContext = new AARPDbContext()) { return(dbContext.Reviewers .Where(rvr => rvr.IsInWorkingHours(commonConfigs.StartTimeOfDay, commonConfigs.EndTimeOfDay, commonConfigs.EnabledDays)) .ToArray()); } }
public TEntity Add(TEntity entity) { using (var dbContext = new AARPDbContext()) { dbContext.Set <TEntity>().Add(entity); dbContext.SaveChanges(); } return(entity); }
public PartialViewResult GetInterviewsFilter(int?interviewerId) { using (var context = new AARPDbContext()) { ViewBag.Stages = context.InterviewStages.Select(s => new InterviewFilterItem { Id = s.Id, Value = s.Stage, Count = context.Interviews.Count(c => c.InterviewerId == interviewerId && c.InterviewStageId == s.Id) }).ToList(); ViewBag.Seniorities = context.Seniorities.Select(s => new InterviewFilterItem { Id = s.Id, Value = s.SeniorityName, Count = context.Interviews.Count(c => c.InterviewerId == interviewerId && c.SeniorityId == s.Id) }).ToList(); ViewBag.Technologies = context.InterviewTechnologies.Select(s => new InterviewFilterItem { Id = s.Id, Value = s.Technology, Count = context.Interviews.Count(c => c.InterviewerId == interviewerId && c.TechnologyId == s.Id) }).ToList(); ViewBag.TotalNumber = context.Interviews.Count(c => c.InterviewerId == interviewerId); var lastInterviews = (from i in context.Interviews.Where(w => w.InterviewerId == interviewerId).OrderByDescending(o => o.Date) join r in context.InterviewRatings on i.RatingId equals r.Id select new { Interview = i, Rating = r }).Take(10).ToList(); ViewBag.PerformanceInfo = new InterviewerPerformanceViewModel() { Name = context.Interviewers.FirstOrDefault(f => f.Id == interviewerId).InterviewerName, AvgRating = lastInterviews.Count > 0 ? lastInterviews.Average(a => a.Rating.Rating) : 0, Standings = lastInterviews.Count > 0 ? lastInterviews.GroupBy(g => g.Rating.Rating).Select(s => new StandingsInterviewRatingViewModel() { Rating = s.Key, RatingCount = s.Count() }).ToList() : null, Attitude = new StandingsAttitudeViewModel() { Negative = lastInterviews.Count(t => t.Interview.InterviewerAttitude.Trim().Equals(DbConstants.AttitudeNegative)) / 10.0, Neutral = lastInterviews.Count(t => t.Interview.InterviewerAttitude.Trim().Equals(DbConstants.AttitudeNeutral)) / 10.0, Positive = lastInterviews.Count(t => t.Interview.InterviewerAttitude.Trim().Equals(DbConstants.AttitudePositive)) / 10.0, } }; } return(PartialView("Interviews/_GeneralStats")); }
public TEntity Update(TEntity entity) { using (var dbContext = new AARPDbContext()) { dbContext.Set <TEntity>().Attach(entity); dbContext.Entry(entity).State = EntityState.Modified; dbContext.SaveChanges(); } return(entity); }
public static List <StandingsInterviewersViewModel> GetAllStandings(DateRange period) { List <StandingsInterviewersViewModel> standings = null; using (var dbContext = new AARPDbContext()) { var standingsResult = (from interviewer in dbContext.Interviewers join interview in dbContext.Interviews on interviewer.Id equals interview.InterviewerId join ratings in dbContext.InterviewRatings on interview.RatingId equals ratings.Id join istage in dbContext.InterviewStages on interview.InterviewStageId equals istage.Id where (period.dateFrom == null || interview.Date >= period.dateFrom) && (period.dateTo == null || interview.Date >= period.dateTo) select new { interviewer.Id, interviewer.InterviewerName, istage.Stage, ratings.Rating, ratingId = ratings.Id, InterviewerAttitude = interview.InterviewerAttitude.Trim(), }); standings = standingsResult.GroupBy(g => g.Id).Select(s => new StandingsInterviewersViewModel() { InterviewerId = s.Key, AvgRating = s.Average(a => a.Rating), Name = s.FirstOrDefault() == null ? "" : s.FirstOrDefault().InterviewerName, GeneralAttitude = new StandingsAttitudeViewModel() { Negative = (double)s.Count(w => w.InterviewerAttitude.Equals(DbConstants.AttitudeNegative)) / s.Count(), Neutral = (double)s.Count(w => w.InterviewerAttitude.Equals(DbConstants.AttitudeNeutral)) / s.Count(), Positive = (double)s.Count(w => w.InterviewerAttitude.Equals(DbConstants.AttitudePositive)) / s.Count(), }, InterviewStages = s.GroupBy(g => g.Stage).Select(st => new StandingsInterviewStageViewModel() { AttitudeStat = new StandingsAttitudeViewModel() { Negative = (double)st.Count(w => w.InterviewerAttitude.Equals(DbConstants.AttitudeNegative)) / st.Count(), Neutral = (double)st.Count(w => w.InterviewerAttitude.Equals(DbConstants.AttitudeNeutral)) / st.Count(), Positive = (double)st.Count(w => w.InterviewerAttitude.Equals(DbConstants.AttitudePositive)) / st.Count(), }, StageName = st.Key, Ratings = st.GroupBy(g => g.Rating).Select(rt => new StandingsInterviewRatingViewModel() { RatingCount = rt.Count(), Rating = rt.Key }).ToList(), }).ToList(), }).ToList(); } return(standings); }
public static bool SetAdminSettings(List <AdminSettingsViewModel> saveModel) { using (var dbContext = new AARPDbContext()) { var settings = dbContext.AdminSettings.ToList(); var techSettings1 = settings.Where(x => x.Id == 1).FirstOrDefault(); if (techSettings1 != null) { techSettings1.EmailTimer = saveModel[0].EmailTimer; techSettings1.FeedbackMessage = saveModel[0].FeedbackMessage; techSettings1.ReminderID = saveModel[0].EnableReminder; techSettings1.ReminderMessage = saveModel[0].ReminderMessage; dbContext.SaveChanges(); } else { techSettings1 = new AdminSetting() { Id = 1, EmailTimer = saveModel[0].EmailTimer, FeedbackMessage = saveModel[0].FeedbackMessage, ReminderID = saveModel[0].EnableReminder, ReminderMessage = saveModel[0].ReminderMessage }; dbContext.AdminSettings.Add(techSettings1); dbContext.SaveChanges(); } var techSettings2 = settings.Where(x => x.Id == 2).FirstOrDefault(); if (techSettings2 != null) { techSettings2.EmailTimer = saveModel[1].EmailTimer; techSettings2.FeedbackMessage = saveModel[1].FeedbackMessage; techSettings2.ReminderID = saveModel[1].EnableReminder; techSettings2.ReminderMessage = saveModel[1].ReminderMessage; dbContext.SaveChanges(); } else { techSettings2 = new AdminSetting() { Id = 2, EmailTimer = saveModel[1].EmailTimer, FeedbackMessage = saveModel[1].FeedbackMessage, ReminderID = saveModel[1].EnableReminder, ReminderMessage = saveModel[1].ReminderMessage }; dbContext.AdminSettings.Add(techSettings2); dbContext.SaveChanges(); } } return(true); }
public ActionResult Interviewee(int id) { using (var dbContext = new AARPDbContext()) { ViewBag.InterviewLengths = dbContext.InterviewLengths.ToList(); } var profile = EvaluationInterviewee.GetIntervieweeProfile(id); return(View(profile)); }
public void Delete(int key) { using (var dbContext = new AARPDbContext()) { var entity = dbContext.Set <TEntity>().Find(key); if (entity != null) { dbContext.Set <TEntity>().Remove(entity); dbContext.SaveChanges(); } } }
public int GetNextId() { using (var dbContext = new AARPDbContext()) { if (dbContext.Reviewers.Count() == 0) { return(1); } return(dbContext.Reviewers.Select(t => t.Id).Max() + 1); } }
public void SendEvaluationInvitationEmail(int InterviewerID, int IntervieweeID) { using (var dbContext = new AARPDbContext()) { var Interviewee = dbContext.Interviewees.Where(x => x.Id == IntervieweeID).First(); var Interviewer = dbContext.Interviewers.Where(x => x.Id == InterviewerID).First(); var email = new EvaluationInvitationEmail() { interviewer = Interviewer, interviewee = Interviewee, EvaluationLink = GenerateEvaluationLink(IntervieweeID, InterviewerID) }; BackgroundEmailService.Create().Send(email); } }
private static void SendSurveyEmails() { using (var dbContext = new AARPDbContext()) { var newReviews = dbContext.Interviews.Where(x => x.SurveyStatus.Trim() == "New" && x.StatusId == 0).ToList(); EvaluationsEmailService service = new EvaluationsEmailService(); foreach (var review in newReviews) { service.SendEvaluationInvitationEmail(review.InterviewerId, review.IntervieweeId); review.StatusId = 1; review.SurveyStatus = "EmailSent"; dbContext.Entry(review).State = System.Data.Entity.EntityState.Modified; } dbContext.SaveChanges(); } }
public static StatsSubHeaderViewModel GenerateStatsSubHeader(DateTime startDate, DateTime endDate) { StatsSubHeaderViewModel result = new StatsSubHeaderViewModel(); using (var dbContext = new AARPDbContext()) { result.TotalInterviewers = dbContext.Interviewers.Count(); result.TotalNumberOfInterviews = dbContext.Interviews.Where(x => x.Date >= startDate && x.Date <= endDate).Count(); result.TotalInterview1 = dbContext.Interviews.Where(x => x.Date >= startDate && x.Date <= endDate && x.InterviewStageId == 1).Count(); result.TotalInterview2 = dbContext.Interviews.Where(x => x.Date >= startDate && x.Date <= endDate && x.InterviewStageId == 2).Count(); result.TotalInterviewers = dbContext.Interviews.Where(x => x.Date >= startDate && x.Date <= endDate).Select(y => y.InterviewerId).Distinct().Count(); result.PositiveImpression = dbContext.Interviews.Where(x => x.Date >= startDate && x.Date <= endDate && x.InterviewerAttitude == DbConstants.AttitudePositive).Count(); result.NeutralImpression = dbContext.Interviews.Where(x => x.Date >= startDate && x.Date <= endDate && x.InterviewerAttitude == DbConstants.AttitudeNeutral).Count(); result.NegativeImpression = dbContext.Interviews.Where(x => x.Date >= startDate && x.Date <= endDate && x.InterviewerAttitude == DbConstants.AttitudeNegative).Count(); } return(result); }
/// <summary> /// Sync Interviewers /// </summary> private static void SyncInterviewers() { var webApiClient = DiContainers.Global.Resolve <IWebApiClient>(); var apiInterviewers = webApiClient.GetInterviewers(); if (apiInterviewers == null || apiInterviewers.Count == 0) { return; } using (var dbContext = new AARPDbContext()) { try { foreach (var apiInterviewer in apiInterviewers) { foreach (var reviewer in apiInterviewer.Feedback) { var currentInterviewer = dbContext.Interviewers.FirstOrDefault(x => x.Id.ToString() == reviewer.SubmittedBy.Id); if (currentInterviewer != null) { continue; } currentInterviewer = new Interviewer { Id = int.Parse(reviewer.SubmittedBy.Id), InterviewerName = reviewer.SubmittedBy.Name ?? string.Empty, InterviewerEmail = reviewer.SubmittedBy.Email ?? string.Empty }; dbContext.Interviewers.Add(currentInterviewer); dbContext.SaveChanges(); } } } catch (Exception e) { Logger.Error(e.Message, e); } } }
public static Models.Evaluations.Chart.Chart GetRatingChartData(DateRange period, int interviewerID = default(int)) { List <StandingsInterviewRatingViewModel> OverallRatings = new List <StandingsInterviewRatingViewModel>(); using (var dbContext = new AARPDbContext()) { var standingsResult = (from interview in dbContext.Interviews join ratings in dbContext.InterviewRatings on interview.RatingId equals ratings.Id where interview.Date >= period.dateFrom && interview.Date <= period.dateTo && (interviewerID > 0 ? interview.Id == interviewerID : true) select new { interview.Id, interview.RatingId, ratings.Rating, }).Where(x => x.RatingId != 0).ToList(); var test = standingsResult.GroupBy(x => x.RatingId).ToList(); foreach (var item in test) { OverallRatings.Add(new StandingsInterviewRatingViewModel() { Rating = item.Key, RatingCount = item.Count() }); } } Models.Evaluations.Chart.Chart _chart = new Models.Evaluations.Chart.Chart(); _chart.labels = OverallRatings.Select(x => x.Rating.ToString()).ToArray(); _chart.datasets = new List <Datasets>(); List <Datasets> _dataSet = new List <Datasets>(); _dataSet.Add(new Datasets() { label = "Ratings", data = OverallRatings.Select(x => x.RatingCount).ToArray(), backgroundColor = new string[] { "#9068be", "#e62739", "#3fb0ac", "ba9077", "6534ff" }, // borderColor = new string[] { "#FF0000", "#800000", "#808000"}, borderWidth = "1" }); _chart.datasets = _dataSet; return(_chart); }
/// <summary> /// Sync Interviewees /// </summary> private static void SyncInterviewees() { var webApiClient = DiContainers.Global.Resolve <IWebApiClient>(); var apiInterviewees = webApiClient.GetInterviewees(); if (apiInterviewees == null || apiInterviewees.Count == 0) { return; } using (var dbContext = new AARPDbContext()) { try { foreach (var apiInterviewee in apiInterviewees) { var currentInterview = dbContext.Interviewees.FirstOrDefault(x => x.Id.ToString() == apiInterviewee.Id); if (currentInterview != null) { continue; } var interviewee = new Interviewee { Id = int.Parse(apiInterviewee.Id), Name = apiInterviewee.GetFullName(), Email = apiInterviewee.Email, OpeningID = apiInterviewee.OpeningID, StageID = apiInterviewee.StageID }; dbContext.Interviewees.Add(interviewee); dbContext.SaveChanges(); } } catch (Exception e) { Logger.Error(e.Message, e); } } }
public static Models.Evaluations.Chart.Chart GetLengthChartData(DateRange period, int interviewerID = default(int)) { List <StatsLengthViewModel> OverallLengths = new List <StatsLengthViewModel>(); using (var dbContext = new AARPDbContext()) { var standingsResult = (from interview in dbContext.Interviews join length in dbContext.InterviewLengths on interview.InterviewLengthId equals length.Id where interview.Date >= period.dateFrom && interview.Date <= period.dateTo && (interviewerID > 0 ? interview.Id == interviewerID : true) select new { interview.InterviewLengthId, interview.Id, length.Length, }).Where(x => x.InterviewLengthId != 0).ToList(); var groupedLenghts = standingsResult.GroupBy(x => x.Length).ToList(); foreach (var item in groupedLenghts) { OverallLengths.Add(new StatsLengthViewModel() { Length = item.Key.Trim(), Percent = item.Count() }); } } Models.Evaluations.Chart.Chart _chart = new Models.Evaluations.Chart.Chart(); _chart.labels = OverallLengths.Select(x => x.Length.ToString()).ToArray(); _chart.datasets = new List <Datasets>(); List <Datasets> _dataSet = new List <Datasets>(); _dataSet.Add(new Datasets() { label = "Length", data = OverallLengths.Select(x => (int)Math.Round(x.Percent)).ToArray(), backgroundColor = new string[] { "#9068be", "#e62739", "#3fb0ac", "ba9077", "6534ff" }, // borderColor = new string[] { "#FF0000", "#800000", "#808000"}, borderWidth = "1" }); _chart.datasets = _dataSet; return(_chart); }
public static TConfigs GetConfigs <TConfigs>() where TConfigs : ConfigSectionWebApi { AARP.Models.Configuration cnfgEntity = null; var key = "RecruiterBoxConfigs"; using (var dbContext = new AARPDbContext()) { cnfgEntity = dbContext.Configurations.FirstOrDefault(cfg => cfg.Key == key); } if (cnfgEntity != null) { return(JsonConvert.DeserializeObject <TConfigs>(cnfgEntity.Value)); } else { return(Activator.CreateInstance <TConfigs>()); } }
/// <summary> /// Sync Users /// </summary> private static void SyncUsers() { try { var webApiClient = DiContainers.Global.Resolve <IWebApiClient>(); var users = webApiClient.GetUsers(); using (var dbContext = new AARPDbContext()) { foreach (var user in users) { if (user.Disabled) { continue; } var currentInterviewer = dbContext.Interviewers.FirstOrDefault(x => x.Id.ToString() == user.Id); if (currentInterviewer != null) { continue; } currentInterviewer = new Interviewer { Id = int.Parse(user.Id), InterviewerName = user.Name ?? string.Empty, InterviewerEmail = user.Emails.Count > 0 ? user.Emails[0] : string.Empty }; dbContext.Interviewers.Add(currentInterviewer); dbContext.SaveChanges(); } } } catch (Exception e) { Logger.Error(e.Message, e); } }