public ActionResult ConsolidatedNominations(ConsolidatedNominationsViewModel consolidatedNominationsViewModel) { var customDate = _customDateService.GetCustomDate(consolidatedNominationsViewModel.AwardId); var awards = _awardService.GetAllAwards(); var currentAwardFrequency = consolidatedNominationsViewModel.AwardId > 0 ? GetAwardFrequency(consolidatedNominationsViewModel.AwardId).Data.ToString() : ""; if (consolidatedNominationsViewModel.AwardId == 0) { consolidatedNominationsViewModel = new ConsolidatedNominationsViewModel(); var award = awards.FirstOrDefault(a => a.Code == "SOM"); if (award != null) { customDate = _customDateService.GetCustomDate(award.Id); consolidatedNominationsViewModel.AwardId = award.Id; consolidatedNominationsViewModel.AwardMonth = customDate.Month; consolidatedNominationsViewModel.AwardYear = customDate.Year; } } consolidatedNominationsViewModel.Criterias = _encourageDatabaseContext.Query <Criteria>().Where(c => c.AwardId == consolidatedNominationsViewModel.AwardId).ToList(); consolidatedNominationsViewModel.Reviewers = new List <ReviewerViewModel>(); consolidatedNominationsViewModel.Nominations = new List <SubmittedNomination>(); consolidatedNominationsViewModel.ListOfAwards = new SelectList(awards, "Id", "Name"); List <UtilityUserRoles> activeReviewers; var utility = _commonDbContext.Query <Utility>().FirstOrDefault(r => r.Name == "Encourage"); if (consolidatedNominationsViewModel.AwardMonth == customDate.Month && consolidatedNominationsViewModel.AwardYear == customDate.Year) { activeReviewers = _commonDbContext.Query <UtilityUserRoles>().Where(x => x.IsActive && x.UtilityId == utility.Id && x.RoleId == (int)Roles.Reviewer).ToList(); } else { activeReviewers = _commonDbContext.Query <UtilityUserRoles>().Where(x => x.RoleId == (int)Roles.Reviewer && x.UtilityId == utility.Id).ToList(); } foreach (var reviewer in activeReviewers) { var reviewerObj = _commonDbContext.Query <User>().FirstOrDefault(u => u.ID == reviewer.UserId); var reviewerData = _encourageDatabaseContext.Query <Reviewer>().FirstOrDefault(x => x.UserId == reviewer.UserId); var reviewerId = reviewerData != null ? reviewerData.Id : 0; consolidatedNominationsViewModel.Reviewers.Add(new ReviewerViewModel { Id = reviewerId, UserId = reviewer.UserId, ReviewerName = reviewerObj != null ? reviewerObj.FirstName + " " + reviewerObj.LastName : "" }); } var nominations = currentAwardFrequency == FrequencyCode.YEAR.ToString() ? _encourageDatabaseContext.Query <Nomination>().Include(a => a.ManagerComments).Include(b => b.ReviewerComments).Where(N => N.IsSubmitted == true && N.NominationDate.Value.Year == consolidatedNominationsViewModel.AwardYear && N.AwardId == consolidatedNominationsViewModel.AwardId).ToList() : _encourageDatabaseContext.Query <Nomination>().Include(a => a.ManagerComments).Include(b => b.ReviewerComments).Where(N => N.IsSubmitted == true && N.NominationDate.Value.Month == consolidatedNominationsViewModel.AwardMonth && N.NominationDate.Value.Year == consolidatedNominationsViewModel.AwardYear && N.AwardId == consolidatedNominationsViewModel.AwardId).ToList(); foreach (var nomination in nominations) { var nominee = _commonDbContext.Query <User>().FirstOrDefault(u => u.ID == nomination.UserId); var isWinner = false; var checkResultStatus = _resultService.IsShortlistedOrWinner(nomination.Id); if (checkResultStatus == 1) { isWinner = true; } var submittednomination = new SubmittedNomination { NominationId = nomination.Id, UserName = nominee != null ? nominee.FirstName + " " + nominee.LastName : "", ManagerComments = nomination.ManagerComments.ToList(), ReviewerComments = new List <ReviewerCommentViewModel>(), IsWinner = isWinner, IsHistoricalNomination = IsHistoricalNomination(nomination) }; submittednomination.IsShortListed = _encourageDatabaseContext.Query <Shortlist>().Any(s => s.NominationId == nomination.Id); foreach (var reviewerComment in nomination.ReviewerComments) { var managerComment = nomination.ManagerComments.FirstOrDefault(m => m.CriteriaId == reviewerComment.CriteriaId); var reviewComment = new ReviewerCommentViewModel() { CriteriaId = reviewerComment.CriteriaId, Comment = reviewerComment.Comment, Credit = Convert.ToInt32(reviewerComment.Credit), ReviewerId = reviewerComment.ReviewerId, Weightage = managerComment != null ? managerComment.Weightage : 0 }; submittednomination.ReviewerComments.Add(reviewComment); } consolidatedNominationsViewModel.Nominations.Add(submittednomination); } if (Request.IsAjaxRequest()) { return(PartialView("_ConsolidatedNominationsPartialView", consolidatedNominationsViewModel)); } else { consolidatedNominationsViewModel.CustomDate = customDate; return(View("ConsolidatedNominations", consolidatedNominationsViewModel)); } }
public ActionResult ViewNominationForShortlist(int nominationId) { _logger.Log("Review-ViewNominationForShortlist-GET"); ViewBag.NominationLockStatus = _nominationService.GetNominationLockStatus(); var reviews = _reviewService.GetReviewsForNomination(nominationId).ToList(); var nomination = _nominationService.GetNomination(nominationId); var allReviewerComments = new List <List <ReviewerCommentViewModel> >(); decimal totalCreditPoints = 0; var isHistoricalNomination = IsHistoricalNomination(nomination); foreach (var r in reviews) { foreach (var rc in r.ReviewerComments) { var managerCommnet = nomination.ManagerComments.FirstOrDefault(mc => mc.CriteriaId == rc.CriteriaId); totalCreditPoints += (Convert.ToInt32(rc.Credit) * (managerCommnet != null ? managerCommnet.Weightage : 0) / 100m); } } foreach (var review in reviews) { var allreviewerComment = _encourageDatabaseContext.Query <ReviewerComment>().Where(model => model.ReviewId == review.Id); var reviewer = _encourageDatabaseContext.Query <Reviewer>().FirstOrDefault(model => model.Id == review.ReviewerId); var reviewerObj = _commonDbContext.Query <User>().FirstOrDefault(u => u.ID == reviewer.UserId); var reviewerCommentList = new List <ReviewerCommentViewModel>(); foreach (var reviewerComment in allreviewerComment) { var singleReviewerComent = new ReviewerCommentViewModel() { CriteriaId = reviewerComment.CriteriaId, Comment = reviewerComment.Comment, Credit = Convert.ToInt32(reviewerComment.Credit), ReviewerName = reviewerObj != null ? reviewerObj.DisplayName : string.Empty }; reviewerCommentList.Add(singleReviewerComent); } allReviewerComments.Add(reviewerCommentList); } var awardOfCurrentNomination = _awardService.GetAwardFromNominationId(nominationId); var isLocked = GetLockStatusOfAward(awardOfCurrentNomination.Id); var isShortlisted = false; var isWinner = false; var checkResultStatus = _resultService.IsShortlistedOrWinner(nomination.Id); if (checkResultStatus == 1) { isWinner = true; } else if (checkResultStatus == 2) { isShortlisted = true; } var nominee = _commonDbContext.Query <User>().FirstOrDefault(u => u.ID == nomination.UserId); var loggedInAdminId = _awardService.GetUserIdFromEmail(User.Identity.Name); var hrAdminsFeedback = _resultService.GetHrAdminsFeedbackForEmployee(loggedInAdminId, nomination.Id); var shortlistViewModel = new ViewShortlistDetailsViewModel() { NominationId = nomination.Id, UserName = nominee != null ? nominee.DisplayName : string.Empty, TotalCredits = totalCreditPoints, Manager = _nominationService.GetManagerNameOfCurrentNomination(nominationId), ProjectOrDepartment = nomination.ProjectID != null? _nominationService.GetProjectNameOfCurrentNomination(nomination.Id) : _nominationService.GetDeptNameOfCurrentNomination(nomination.Id), NominationComment = nomination.Comment, IsShortlisted = isShortlisted, IsWinner = isWinner, ReviewerComments = allReviewerComments, Criterias = _nominationService.GetCriteriaForNomination(nomination.Id), ManagerComments = nomination.ManagerComments.ToList(), IsLocked = isLocked, HrAdminsfeedback = hrAdminsFeedback, HrAdminName = _resultService.GetLoggedInUserName(User.Identity.Name), IsHistoricalNomination = isHistoricalNomination }; return(View(shortlistViewModel)); }