Ejemplo n.º 1
0
        public ActionResult EditSavedNomination(int nominationId)
        {
            _logger.Log("Nomination-EditSavedNomination-GET");
            var savedNomination     = _nominationService.GetNomination(nominationId);
            var customDate          = _customDateService.GetCustomDate(savedNomination.AwardId);
            var isHistorical        = IsHistoricalNomination(savedNomination);
            var nominationViewModel = new NominationViewModel();
            var userEmailAddress    = User.Identity.Name;

            var projects      = _awardService.GetProjectsUnderCurrentUserAsManager(userEmailAddress);
            var departments   = _awardService.GetDepartmentsUnderCurrentUserAsManager(userEmailAddress);
            var nominatedUser = _awardService.GetUserById(savedNomination.UserId);

            var currentUserId = _awardService.GetUserIdFromEmail(userEmailAddress);

            nominationViewModel.ManagerId = currentUserId;

            if (savedNomination.ProjectID != null)
            {
                nominationViewModel.SelectResourcesBy = "Project";
                var firstOrDefault = projects.FirstOrDefault(p => p.ID == savedNomination.ProjectID);
                if (firstOrDefault != null)
                {
                    nominationViewModel.ProjectOrDeptName = projects.Any() ? firstOrDefault.Name : "";
                }
            }
            else if (savedNomination.DepartmentId != null)
            {
                nominationViewModel.SelectResourcesBy = "Department";
                var firstOrDefault = departments.FirstOrDefault(d => d.ID == savedNomination.DepartmentId);
                if (firstOrDefault != null)
                {
                    nominationViewModel.ProjectOrDeptName = departments.Any() ? firstOrDefault.Name : "";
                }
            }
            else
            {
                nominationViewModel.SelectResourcesBy = "Other";
            }

            nominationViewModel.ResourceName = nominatedUser != null ? nominatedUser.DisplayName : "";

            //IN FUTURE GOING TO USE MAPPER
            nominationViewModel.AwardId               = savedNomination.AwardId;
            nominationViewModel.NominationId          = savedNomination.Id;
            nominationViewModel.ManagerId             = savedNomination.ManagerId;
            nominationViewModel.ProjectID             = savedNomination.ProjectID;
            nominationViewModel.DepartmentId          = savedNomination.DepartmentId;
            nominationViewModel.ResourceId            = savedNomination.UserId;
            nominationViewModel.IsSubmitted           = savedNomination.IsSubmitted;
            nominationViewModel.IsOther               = savedNomination.Other;
            nominationViewModel.IsHistorical          = isHistorical;
            nominationViewModel.MainComment           = savedNomination.Comment;
            nominationViewModel.OtherNominationReason = savedNomination.OtherNominationReason;
            nominationViewModel.AwardName             = _awardService.GetAwardNameById(savedNomination.AwardId);
            nominationViewModel.CustomDate            = customDate;
            var criterias = _awardService.GetCriteriasForAward(nominationViewModel.AwardId);

            int index = 1;

            foreach (var criteria in criterias)
            {
                var managerComment = savedNomination.ManagerComments.FirstOrDefault(c => c.CriteriaId == criteria.Id);

                nominationViewModel.Comments.Add(new CriteriaCommentViewModel
                {
                    Id        = criteria.Id,
                    Title     = criteria.Title,
                    Comment   = managerComment != null ? managerComment.Comment : string.Empty,
                    Rating    = managerComment != null ? managerComment.Rating : 0,
                    Weightage = managerComment != null ? managerComment.Weightage : 0,
                    IndexId   = index
                });
                index++;
            }
            return(View("EditNomination", nominationViewModel));
        }