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)); }
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)); }
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)); }
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)); }
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); }
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)); }
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)); }
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)); }