public ActionResult PostNominationApprovals(List <ApprovalViewModel> model) { var userId = System.Web.HttpContext.Current.User.Identity.GetUserId(); foreach (var item in model) { var currNomStage = db.NominationApprovals.Find(item.Id); currNomStage.ApproverId = userId; currNomStage.MedalId = item.MedalId; currNomStage.Status = item.Status; currNomStage.ApprovalDate = DateTime.Now; db.Entry(currNomStage).State = EntityState.Modified; db.SaveChanges(); var nextApprovalLevel = GetNextApproval(currNomStage.ApprovalStagesId); if (nextApprovalLevel != null) { NominationApprovals approval = new NominationApprovals(); approval.ApprovalStagesId = nextApprovalLevel.Id; approval.MedalId = currNomStage.MedalId; approval.NominationId = currNomStage.NominationId; approval.Status = false; db.NominationApprovals.Add(approval); db.SaveChanges(); } else { Nomination nomination = db.Nominations.Find(currNomStage.NominationId); nomination.Status = NominationStatus.Awarded; db.Entry(nomination).State = EntityState.Modified; db.SaveChanges(); } } return(RedirectToAction("Approve", "Nominations")); }
public ActionResult PostNominationForm(Nomination model) { var userId = System.Web.HttpContext.Current.User.Identity.GetUserId(); var user = User.IsInRole("Admin"); if (ModelState.IsValid) { var userDetails = db.UserDetails.Where(m => m.UserId == userId).FirstOrDefault(); model.UserDetailsId = userDetails.Id; model.Status = NominationStatus.Pending; db.Nominations.Add(model); db.SaveChanges(); int nominationId = model.Id; ApprovalStages approvalStage = db.ApprovalStages.OrderBy(o => o.Order).FirstOrDefault(); NominationApprovals nominationApproval = new NominationApprovals(); nominationApproval.ApprovalStagesId = approvalStage.Id; nominationApproval.MedalId = model.MedalId; nominationApproval.NominationId = nominationId; nominationApproval.Status = false; db.NominationApprovals.Add(nominationApproval); db.SaveChanges(); return(RedirectToAction("Index", "Nominations")); } return(RedirectToAction("Create", "Nominations")); }