コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
        }