//得分列表 public List <PollingResultScoreView> PollingResultScore(int pollingId) { var polling = Repository.Entities.FirstOrDefault(a => a.Id == pollingId); var pollingResultScores = new List <PollingResultScoreView>(); var pollingAnswers = _pollingResultService.Repository.Entities.Where(a => a.PollingId == pollingId).Where(x => x.UserId != null).ToList(); pollingAnswers.GroupBy(x => x.UserId).ToList().ForEach(y => { var pollingResultScore = new PollingResultScoreView(); int score = 0; foreach (var questionresult in PollingResult(pollingId)) { var answered = questionresult.Answers.Aggregate("", (current, answer) => current + (answer.AnswerId == 0 ? "N" : "Y")); if (polling != null) { var questionstr = polling.PollingQuestions.FirstOrDefault(a => a.Id == questionresult.QuestionId); if (questionstr != null) { var answer1 = ConvertAbcToYn(questionstr.RightAnswers, 10); if (answer1 == answered && questionresult.UserId.ToUpper() == y.Key.ToUpper()) { score += questionstr.Score.GetValueOrDefault(); } else { score += 0; } } } } List <EmployeeInfoWithDept> empDetails = WeChatCommonService.lstUserWithDeptTag; var emp = empDetails.SingleOrDefault(a => a.userid.ToUpper().Equals(y.Key.ToUpper())); pollingResultScore.UserId = y.Key; pollingResultScore.CustomScore = score; if (emp != null) { pollingResultScore.UserName = emp.name; pollingResultScore.UserDeptLv1 = emp.deptLvs[2]; pollingResultScore.UserDeptLv2 = emp.deptLvs[3]; pollingResultScore.UserDeptLv3 = emp.deptLvs[4]; } pollingResultScores.Add(pollingResultScore); }); return(pollingResultScores); }
/// <summary> /// 某个polling员工答题后的得分列表 /// </summary> /// <param name="pollingId"></param> /// <returns>员工列表,每个员工的得分,以及员工的部门(不再是员工啦)</returns> public List <PollingResultScoreView> PollingResultScore(int pollingId, PageCondition pageCondition) { //var polling = Repository.Entities.FirstOrDefault(a => a.Id == pollingId); var polling = GetPollingView(pollingId); var pollingResultScores = new List <PollingResultScoreView>(); // TODO: 用到了PollingResult // var pollingAnswers = _pollingResultService.GetList(pollingId); var pollingAnswers = pageCondition != null?_pollingResultService.GetGroupPagingByUserId(x => x.PollingId == pollingId && x.IsDeleted == false, pageCondition) : _pollingResultService.GetList(pollingId); var pollingResult = PollingResult(pollingId, pollingAnswers, polling); pollingResult.GroupBy(x => x.UserId).ToList().ForEach(y => { // var userid = y.Key.ToUpper(); var answersForYUser = y.ToList(); var pollingResultScore = new PollingResultScoreView(); decimal score = 0; foreach (var questionresult in answersForYUser) { var answered = questionresult.Answers.Aggregate("", (current, answer) => current + (answer.AnswerId == 0 ? "N" : "Y")); if (polling != null) { var questionstr = polling.PollingQuestions.FirstOrDefault(a => a.Id == questionresult.QuestionId); if (questionstr != null) { //NY转换成ABC var answer1 = ConvertAbcToYn(questionstr.RightAnswers, 10); if (answer1 == answered && questionresult.UserId.ToUpper() == y.Key.ToUpper()) { score += questionstr.Score.GetValueOrDefault(); } else { score += 0; } } } } //List<EmployeeInfoWithDept> empDetails = WeChatCommonService.lstUserWithDeptTag; //var emp = empDetails.SingleOrDefault(a => a.userid.ToUpper().Equals(y.Key.ToUpper())); pollingResultScore.UserId = y.Key; pollingResultScore.UserName = y.Key; //pollingResultScore.CustomScore = score; //if (emp != null) //{ // pollingResultScore.UserName = emp.name; // pollingResultScore.UserDeptLv1 = emp.deptLvs[2]; // pollingResultScore.UserDeptLv2 = emp.deptLvs[3]; // pollingResultScore.UserDeptLv3 = emp.deptLvs[4]; //} pollingResultScores.Add(pollingResultScore); }); return(pollingResultScores); }