// GET: Proposal public ActionResult Index() { if (IsLoggedIn() && IsAuthorized()) { int userID = GetUserID(); var user = db.User.Where(u => u.recordID == userID).FirstOrDefault(); var student = db.Student.Where(s => s.recordID == userID).FirstOrDefault(); var ticket = db.Ticket.Where(t => t.recordID > 0).FirstOrDefault(); var idea = db.Idea.Where(i => i.User.recordID != userID).ToList(); var proposal = db.Proposal.Where(p => p.User.recordID == userID).ToList(); var proposalUser = new ProposalUserViewModel { user = user, student = student, ticket = ticket, availableIdeas = idea, proposals = proposal }; if (student.matrikelNumber == 0) { ViewBag.IsDataSet = false; } return(View(proposalUser)); } else { return(RedirectToAction("Login", "User")); } }
public ActionResult Create(ProposalIdeaFieldViewModel proposalIdeaFieldViewModel) { try { // TODO: Add insert logic here using (TicketingApp db = new TicketingApp()) { proposalIdeaFieldViewModel.AllFields = db.Fields.ToList(); proposalIdeaFieldViewModel.AllSupervisor = db.Supervisor.ToList(); int userID1 = GetUserID(); var user1 = db.User.Where(u => u.recordID == userID1).FirstOrDefault(); var idea1 = new Idea { title = proposalIdeaFieldViewModel.proposal.nameOfProject, description = proposalIdeaFieldViewModel.proposal.abstrac, type = proposalIdeaFieldViewModel.idea.type, field = proposalIdeaFieldViewModel.idea.field, User = user1 }; db.Idea.Add(idea1); db.SaveChanges(); int ideaRecordId = idea1.recordID; var ideaCreated = db.Idea.Where(i => i.recordID == ideaRecordId).FirstOrDefault(); proposalIdeaFieldViewModel.proposal.User = user1; proposalIdeaFieldViewModel.proposal.Idea = ideaCreated; db.Proposal.Add(proposalIdeaFieldViewModel.proposal); var ticket1 = new Ticket { title = proposalIdeaFieldViewModel.proposal.nameOfProject, status = "Pending", timesRejected = 0, User = user1, Idea = ideaCreated }; db.Ticket.Add(ticket1); db.SaveChanges(); int ticketRecordId = ticket1.recordID; var ticketCreated = db.Ticket.Where(t => t.recordID == ticketRecordId).FirstOrDefault(); string userRole = GetUserRole(); var contributor = new Contributors { status = "Pending", Role = userRole, User = user1, Ticket = ticketCreated }; db.Contributors.Add(contributor); db.SaveChanges(); var surperUser = db.User.Where(u => u.recordID == proposalIdeaFieldViewModel.supervisor).FirstOrDefault(); var identifier = surperUser.email; var surperUserRole = db.RoleIdentifier .Join(db.RoleIdentifierDetails, roleIdentifier => roleIdentifier.recordID, roleIdentifierDetails => roleIdentifierDetails.RoleIdentifier.recordID, (roleIdentifier, roleIdentifierDetails) => new { RoleIdentifier = roleIdentifier, RoleIdentifierDetails = roleIdentifierDetails }) .Where(roleAndDetails => identifier.Contains(roleAndDetails.RoleIdentifierDetails.identifier)).FirstOrDefault(); contributor.User = surperUser; contributor.Role = surperUserRole.RoleIdentifier.role; db.Contributors.Add(contributor); db.SaveChanges(); } int userID = GetUserID(); var user = db.User.Where(u => u.recordID == userID).FirstOrDefault(); var student = db.Student.Where(s => s.recordID == userID).FirstOrDefault(); var ticket = db.Ticket.Where(t => t.Contributors.Any(c => c.User.recordID == userID)).FirstOrDefault(); var idea = db.Idea.Where(i => i.User.recordID != userID).ToList(); var proposal = db.Proposal.Where(p => p.User.recordID == userID).ToList(); var proposalUser = new ProposalUserViewModel { user = user, student = student, ticket = ticket, availableIdeas = idea, proposals = proposal }; return(View("Index", proposalUser)); } catch { } }