public ActionResult InPrinciple(int id) { var proposal = _context.Proposals.SingleOrDefault(m => m.Id == id); if (proposal == null || !proposal.Submitted || !proposal.HasFacultyApproval()) { return(HttpNotFound()); } var ipp = _context.InPrincipal_Pvc.SingleOrDefault(m => m.InPrincipalId == proposal.InPrincipalId); var pvcApproval = ipp.PvcApproval; var ips = _context.InPrincipal_Senate.SingleOrDefault(m => m.InPrincipalId == proposal.InPrincipalId); var senateDecision = (ips == null) ? null : ips.SenateDecision; var ipc = _context.InPrincipal_Council.SingleOrDefault(m => m.InPrincipalId == proposal.InPrincipalId); var councilDecision = (ipc == null) ? null : ipc.CouncilDecision; var viewModel = new InPrincipleIndexViewModel { PvcApproval = pvcApproval, SenateDecision = senateDecision, CouncilDecision = councilDecision, Proposal = proposal }; return(View(viewModel)); }
public ActionResult InPrinciple(int id) { var proposal = _context.Proposals.SingleOrDefault(m => m.Id == id); if (proposal == null || !proposal.Submitted || !proposal.HasFacultyApproval()) { return(HttpNotFound()); } string email = null; if (User.IsInRole(RoleName.ER)) { email = User.Identity.GetUserName(); } if (!proposal.IsViewable(User.Identity.GetUserId(), email)) { return(HttpNotFound()); } var ipp = _context.InPrincipal_Pvc.SingleOrDefault(m => m.InPrincipalId == proposal.InPrincipalId); var pvcApproval = ipp.PvcApproval; var ips = _context.InPrincipal_Senate.SingleOrDefault(m => m.InPrincipalId == proposal.InPrincipalId); var senateDecision = (ips == null) ? null : ips.SenateDecision; var ipc = _context.InPrincipal_Council.SingleOrDefault(m => m.InPrincipalId == proposal.InPrincipalId); var councilDecision = (ipc == null) ? null : ipc.CouncilDecision; var viewModel = new InPrincipleIndexViewModel { PvcApproval = pvcApproval, SenateDecision = senateDecision, CouncilDecision = councilDecision, Proposal = proposal, }; ApplicationDbContext adb = new ApplicationDbContext(); if (pvcApproval != null) { viewModel.PvcSignedBy = null; if (pvcApproval.SignedBy != null) { viewModel.PvcSignedBy = adb.Users.SingleOrDefault(m => m.Id == pvcApproval.SignedBy).Email; } } else { viewModel.PvcSignedBy = null; } if (senateDecision != null) { viewModel.SenateSignedBy = null; if (senateDecision.SignedBy != null) { viewModel.SenateSignedBy = adb.Users.SingleOrDefault(m => m.Id == senateDecision.SignedBy).Email; } } else { viewModel.SenateSignedBy = null; } if (councilDecision != null) { viewModel.CouncilSignedBy = null; if (councilDecision.SignedBy != null) { viewModel.CouncilSignedBy = adb.Users.SingleOrDefault(m => m.Id == councilDecision.SignedBy).Email; } } else { viewModel.CouncilSignedBy = null; } return(View(viewModel)); }