Example #1
0
        public async Task <ActionResult> DisplayNominations(string year, string category)
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("DisplayNominations", "Home", new YearCategoryModel(year, category)));
            }
            string    userId    = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            Moviegoer moviegoer = await MoviegoerAPI.GetByUserId(userId);

            List <Vote> myVotes = await VoteAPI.GetByIdentityUserIdYearOfNominationAndCategory(userId, year, category);

            bool hasVotedThisYear = myVotes.Where(v => v.Date.Year == DateTime.Now.Year).FirstOrDefault() != null;

            if (!hasVotedThisYear)
            {
                return(RedirectToAction(nameof(VoteOnNomination), new YearCategoryModel(year, category)));
            }
            NominationViewModel nominationViewModel = await CreateNominationViewModel(year, category);

            nominationViewModel.JsonVotes        = JsonDataBuilder.CreateJsonVoteCollection(nominationViewModel);
            nominationViewModel.JsonNomineeNames = JsonDataBuilder.CreateJsonStringFromStringList(nominationViewModel.Nominations.Select(n => n.Nominee).ToList());
            nominationViewModel.MyVotes          = await VoteAPI.GetByIdentityUserIdYearOfNominationAndCategory(userId, year, category);

            nominationViewModel.AllYearCategoryCombinations = await NominationAPI.GetAllYearCategoryCombinations();

            return(View(nominationViewModel));
        }
        public ActionResult Create(NominationViewModel ViewModel)
        {
            Nomination nomination = ViewModel.nomination;

            if (ModelState.IsValid)
            {
                db.Nominations.Add(nomination);

                foreach (Application application in ViewModel.applications)
                {
                    var original = db.Applications.Find(application.id);
                    if (application.shortlisted != original.shortlisted)
                    {
                        original.modified        = DateTime.Now;
                        original.modified_by     = User.Identity.Name;
                        original.shortlisted     = application.shortlisted;
                        db.Entry(original).State = EntityState.Modified;
                    }
                }

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.status_id  = new SelectList(db.NominationStatus, "id", "name", nomination.status_id);
            ViewBag.program_id = new SelectList(db.Programs, "id", "name", nomination.program_id);
            return(View(ViewModel));
        }
Example #3
0
        public ActionResult Create(NominationViewModel model)
        {
            if (model != null)
            {
                var fileName  = Path.GetFileNameWithoutExtension(model.ImageFile.FileName);
                var extension = Path.GetExtension(model.ImageFile.FileName);
                fileName    = fileName + DateTime.Now.ToString("yymmssfff") + extension;
                model.Photo = "~/Areas/production/images/" + fileName;
                fileName    = Path.Combine(Server.MapPath("~/Areas/production/images/"), fileName);
                model.ImageFile.SaveAs(fileName);

                var nominationDTO = new NominationDTO
                {
                    Name        = model.Name.Trim(),
                    Description = model.Description.Trim(),
                    Photo       = model.Photo.Trim()
                };

                nominationService.Create(nominationDTO);

                ModelState.Clear();
                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
Example #4
0
        public static string CreateJsonVoteCollection(NominationViewModel viewModel)
        {
            List <NomineeDateOfVoteViewModel> votesObjectList = viewModel.Votes.Select(v => new NomineeDateOfVoteViewModel(v.Date.Year, viewModel.Nominations.Where(n => n.Id == v.NominationId).First().Nominee.Replace("\"", ""))).ToList();
            List <string> votesAsStringList = votesObjectList.Select(v => JsonConvert.SerializeObject(v)).ToList();
            string        votesAsJsonString = JsonConvert.SerializeObject(votesAsStringList);

            return(votesAsJsonString);
        }
        public async Task <ActionResult> DisplayNominations(string year, string category)
        {
            NominationViewModel nominationViewModel = await CreateNominationViewModel(year, category);

            nominationViewModel.JsonVotes                   = JsonDataBuilder.CreateJsonVoteCollection(nominationViewModel);
            nominationViewModel.JsonNomineeNames            = JsonDataBuilder.CreateJsonStringFromStringList(nominationViewModel.Nominations.Select(n => n.Nominee).ToList());
            nominationViewModel.AllYearCategoryCombinations = await NominationAPI.GetAllYearCategoryCombinations();

            return(View(nominationViewModel));
        }
        public ActionResult Nominate(int id = 0)
        {
            NominationViewModel ViewModel  = new NominationViewModel();
            Nomination          nomination = db.Nominations.Find(id);

            if (nomination == null)
            {
                return(HttpNotFound("Nomination not found"));
            }
            List <Application> applications = nomination.Program.Applications.Where(a => a.shortlisted).ToList();

            ViewModel.nomination   = nomination;
            ViewModel.applications = applications;
            return(View(ViewModel));
        }
        public ActionResult Edit(int id = 0)
        {
            NominationViewModel ViewModel = new NominationViewModel();

            ViewModel.nomination   = new Nomination();
            ViewModel.applications = new List <Application>();
            Nomination nomination = db.Nominations.Find(id);

            if (nomination == null)
            {
                return(HttpNotFound());
            }

            Program program = db.Programs.Where(p => p.id == nomination.program_id && p.require_nomination).FirstOrDefault();

            if (program == null)
            {
                return(HttpNotFound("Program not found"));
            }
            List <Application> applications = db.Applications.Where(a => a.program_id == program.id).ToList();

            if (applications == null)
            {
                return(HttpNotFound("Application not found"));
            }
            ViewModel.nomination   = nomination;
            ViewModel.applications = applications;


            //fix me: user profile relationship
            List <SelectListItem> nominators = new List <SelectListItem>();

            nominators.Add(new SelectListItem
            {
                Value = "7",
                Text  = "nominator"
            });

            int openedStatusId = db.NominationStatus.Where(x => x.name == "Opened").FirstOrDefault().id;

            ViewBag.statusList    = new SelectList(db.NominationStatus, "id", "name");
            ViewBag.nominatorList = new SelectList(nominators, "Value", "Text");
            ViewModel.nomination  = nomination;
            return(View(ViewModel));
        }
Example #8
0
        public ActionResult AddNomination()
        {
            _logger.Log("Nomination-AddNomination-GET");

            var model            = new NominationViewModel();
            var userEmailAddress = User.Identity.Name;
            var projects         = _awardService.GetProjectsUnderCurrentUserAsManager(userEmailAddress);
            var listOfAwards     = _awardService.GetAllAwards();

            if (projects.Any())
            {
                model.ProjectsUnderCurrentUser = new SelectList(projects, "Id", "Name");
            }

            var depts = _awardService.GetDepartmentsUnderCurrentUserAsManager(userEmailAddress);

            if (depts.Count > 0)
            {
                model.DepartmentsUnderCurrentUser = new SelectList(depts, "Id", "Name");
            }

            foreach (var award in listOfAwards)
            {
                switch (award.Code)
                {
                default:
                case "SOM":
                    model.SomCustomDate = _customDateService.GetCustomDate(award.Id);
                    break;

                case "PINNACLE":
                    model.PinnacleCustomDate = _customDateService.GetCustomDate(award.Id);
                    break;
                }
            }

            model.Resources    = new SelectList(new List <User>(), "Id", "DisplayName");
            model.ListOfAwards = new SelectList(listOfAwards, "Id", "Name");
            model.ManagerId    = _awardService.GetUserIdFromEmail(userEmailAddress);

            return(View(model));
        }
Example #9
0
        public void EditSavedNomination(NominationViewModel model, string submit)
        {
            _logger.Log("Nomination-EditSavedNomination-POST");
            var        customDate = _customDateService.GetCustomDate(model.AwardId);
            Nomination nomination = new Nomination
            {
                Id                    = model.NominationId,
                AwardId               = model.AwardId,
                DepartmentId          = model.DepartmentId,
                ProjectID             = model.ProjectID,
                IsSubmitted           = submit.Equals("Submit"),
                ManagerId             = model.ManagerId,
                UserId                = model.ResourceId,
                Other                 = model.IsOther,
                OtherNominationReason = model.OtherNominationReason
            };

            nomination.NominationDate = customDate;

            foreach (var comment in model.Comments)
            {
                if (comment.Comment != null || comment.Rating != 0)
                {
                    nomination.ManagerComments.Add(new ManagerComment
                    {
                        CriteriaId   = comment.Id,
                        Comment      = comment.Comment != null ? comment.Comment : "",
                        NominationId = model.NominationId,
                        Rating       = comment.Rating,
                        Weightage    = comment.Weightage,
                        FinalScore   = 0,
                        AdminComment = ""
                    });
                }
            }

            nomination.Comment = model.MainComment != null ? model.MainComment : "";

            _nominationService.DeletePrevoiusManagerComments(model.NominationId);
            _nominationService.UpdateNomination(nomination);
        }
Example #10
0
        private async Task <NominationViewModel> CreateNominationViewModel(string year, string category)
        {
            NominationViewModel nominationViewModel;

            try
            {
                int yearInt = int.Parse(year);
                nominationViewModel = new NominationViewModel()
                {
                    Nominations = await NominationAPI.GetNominationsByYearAndCategoryIncludeMovie(year, category),
                    Votes       = await VoteAPI.GetVotesByYearOfNominationAndCategory(year, category),
                    Year        = yearInt,
                    Category    = category
                };
            }
            catch
            {
                nominationViewModel = null;
            }
            return(nominationViewModel);
        }
        public ActionResult Nominate(NominationViewModel ViewModel)
        {
            int        nominatedStatusId = db.NominationStatus.Where(s => s.name == "Nominated").FirstOrDefault().id;
            Nomination nomination        = ViewModel.nomination;

            nomination.status_id       = nominatedStatusId;
            db.Entry(nomination).State = EntityState.Modified;

            foreach (Application application in ViewModel.applications)
            {
                var original = db.Applications.Find(application.id);
                if (application.nominated != original.nominated)
                {
                    original.modified        = DateTime.Now;
                    original.modified_by     = User.Identity.Name;
                    original.nominated       = application.nominated;
                    db.Entry(original).State = EntityState.Modified;
                }
            }

            db.SaveChanges();
            return(RedirectToAction("Nominate", new { id = ViewModel.nomination.id }));
        }
        public ActionResult Edit(NominationViewModel ViewModel)
        {
            Nomination nomination = ViewModel.nomination;

            if (ModelState.IsValid)
            {
                db.Entry(nomination).State = EntityState.Modified;
                db.SaveChanges();

                foreach (Application application in ViewModel.applications)
                {
                    var original = db.Applications.Find(application.id);
                    if (application.shortlisted != original.shortlisted)
                    {
                        original.modified        = DateTime.Now;
                        original.modified_by     = User.Identity.Name;
                        original.shortlisted     = application.shortlisted;
                        db.Entry(original).State = EntityState.Modified;
                    }
                }

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            //fix me: user profile relationship
            List <SelectListItem> nominators = new List <SelectListItem>();

            nominators.Add(new SelectListItem
            {
                Value = "7",
                Text  = "nominator"
            });
            ViewBag.statusList    = new SelectList(db.NominationStatus, "id", "name");
            ViewBag.nominatorList = new SelectList(nominators, "Value", "Text");
            return(View(ViewModel));
        }
Example #13
0
        public ActionResult AddNomination(NominationViewModel model, string submit)
        {
            _logger.Log("Nomination-AddNomination-POST");
            try
            {
                _logger.Log("Nomination-AddNomination-POST-try");
                var customDate = _customDateService.GetCustomDate(model.AwardId);
                var awardOfCurrentNomination = _awardService.GetAwardById(model.AwardId);
                var currentAwardFrequency    = _nominationService.GetAwardFrequencyById(awardOfCurrentNomination.FrequencyId);
                #region RestrictManagerLogic

                var noOfNominationForManager = Convert.ToInt32(ConfigurationManager.AppSettings["noOfNominationForManager"]);
                var startDate         = new DateTime();
                var endDate           = new DateTime();
                var countOfNomination = 0;
                _logger.Log("Todays Date: " + customDate);
                if (currentAwardFrequency.Code == FrequencyCode.MON.ToString())
                {
                    var firstDateOfCurrentMonth = new DateTime(customDate.Year, customDate.Month, 1);
                    startDate = firstDateOfCurrentMonth;
                    var noOfDaysInCurrentMonth = DateTime.DaysInMonth(customDate.Year, customDate.Month);
                    endDate           = new DateTime(customDate.Year, customDate.Month, noOfDaysInCurrentMonth);
                    countOfNomination = _nominationService.GetNominationCountByManagerIdForSom(model.ManagerId, startDate, endDate, model.AwardId);
                }
                else if (currentAwardFrequency.Code == FrequencyCode.YEAR.ToString())
                {
                    var firstDateOfCurrentYear = new DateTime(customDate.Year, 1, 1);
                    startDate         = firstDateOfCurrentYear;
                    countOfNomination = _nominationService.GetNominationCountByManagerIdForPinnacle(model.ManagerId, startDate, model.AwardId);
                }

                if (noOfNominationForManager <= countOfNomination)
                {
                    _logger.Log("Nomination-AddNomination-POST-try-if noOfNominationForManager <= countOfNomination");
                    return(Json(new { success = true, nominationExceed = true, message = "Only " + noOfNominationForManager + " nominations are allowed for " + awardOfCurrentNomination.Name + " !" }, JsonRequestBehavior.AllowGet));
                }

                #endregion RestrictManagerLogic

                var nomination = new Nomination
                {
                    AwardId   = model.AwardId,
                    ManagerId = model.ManagerId,
                    UserId    = model.ResourceId
                };

                switch (model.SelectResourcesBy)
                {
                case "Project":
                    nomination.ProjectID = model.ProjectID;
                    break;

                case "Department":
                    nomination.DepartmentId = model.DepartmentId;
                    break;

                case "Other":
                    nomination.Other = true;
                    nomination.OtherNominationReason = model.OtherNominationReason;
                    break;

                default:
                    break;
                }

                nomination.NominationDate = customDate;
                nomination.IsSubmitted    = submit.Equals("Submit");

                foreach (var criteria in model.Comments)
                {
                    if (criteria.Comment != null || criteria.Rating != 0)
                    {
                        nomination.ManagerComments.Add(
                            new ManagerComment
                        {
                            CriteriaId   = criteria.Id,
                            Comment      = criteria.Comment != null ? criteria.Comment : "",
                            Rating       = criteria.Rating,
                            Weightage    = criteria.Weightage,
                            FinalScore   = 0,
                            AdminComment = ""
                        }
                            );
                    }
                }
                nomination.Comment = model.MainComment != null ? model.MainComment : "";

                nomination.IsLocked = false;
                var wasSubmitted = _awardService.AddNomination(nomination);
                return(Json(new { success = wasSubmitted }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                _logger.Log("Nomination-AddNomination-POST-catch");
                _logger.Log("Nomination-AddNomination-POST-" + ex.Message);
            }
            return(Json(new { success = false }, JsonRequestBehavior.AllowGet));
        }
Example #14
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));
        }