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 ActionResult Interviews()
        {
            var filters     = EvaluationInterviews.GetAllInterviewsFilters();
            var postFilters = new InterviewsFiltersPostViewModel();

            postFilters.selectedstages      = filters.StageFilter.Keys.Select(x => x.Id).ToList();
            postFilters.selectedseniorities = filters.SeniorityFilter.Keys.Select(x => x.Id).ToList();
            var interviews = EvaluationInterviews.GetAllInterviewsList(postFilters);

            return(View(interviews));
        }
        public string Interviews(InterviewsFiltersPostViewModel filters)
        {
            string result     = "";
            var    interviews = EvaluationInterviews.GetAllInterviewsList(filters);
            int    counter    = 1;

            foreach (var interview in interviews.Interviews)
            {
                var ratings = "";

                for (var i = 0; i < 5; i++)
                {
                    if (interview.Rating > i)
                    {
                        ratings += string.Format(@"<i class=""glyphicon glyphicon-star""></i>");
                    }
                    else
                    {
                        ratings += string.Format(@"<i class=""glyphicon glyphicon-star-empty""></i>");
                    }
                }
                result += string.Format(@"<tr><td>{0}</td>
                                        <td>{1}</td>
                                        <td>{2}</td>     
                                        <td><a href=""Interviewee/{8}"">{3}</a></td>
                                        <td>{4}</td>
                                        <td>{5}</td>
                                        <td>{6}</td>
                                        <td>{7}</td>
                                        </tr>", counter, interview.Interviewer, interview.InterviewDate, interview.Interviewee, interview.InterviewStage, interview.Seniority
                                        , interview.InterviewStatus, interview.Rating + " " + ratings, interview.IntervieweeID);

                counter++;
            }
            return(result);
        }