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