// GET: Projects/Details/5 public ActionResult Details(int?id) { //if the id is missing, redirect and alert the user if (id == null) { TempData["Alert"] = "Please provide a project id"; return(RedirectToAction("Index")); } //create an instance of the specified project Project project = db.Projects.Find(id); //ensure it exists if (project == null) { TempData["Alert"] = "Project not found"; return(RedirectToAction("Index")); } //instantiate view model var projectDetailsVM = new ProjectDetailsVM(); projectDetailsVM = new ProjectDetailsVM { ProjectId = project.Id, ProjectName = project.Name, ProjectDescription = project.Description, Created = project.Created, Updated = project.Updated, ProjectManager = project.ProjectManagerId.Any() ? db.Users.Find(project.ProjectManagerId).FullName : "" }; //List users on project var projUsers = projHelper.UsersOnProject(project.Id); foreach (var user in projUsers) { projectDetailsVM.Users.Add(new UserInfoVM { FullName = user.FullName, RoleName = userHelper.ListUserRoles(user.Id).FirstOrDefault() }); } return(View(projectDetailsVM)); }
//Show details of a project public IActionResult Details(int id) { Project project = _projects.Read(id); if (project == null) { return(RedirectToAction("Index")); } ProjectDetailsVM pdm = new ProjectDetailsVM { Id = project.Id, Name = project.Name, StartDate = project.StartDate, EndDate = project.EndDate }; return(View(pdm)); }
public async Task <ActionResult> ProjectDetails(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Projects projects = await db.Projects.FindAsync(id); if (projects == null) { return(HttpNotFound()); } //UserRoles Helper var userRolesHelper = new UserRolesHelper(db); ViewBag.TicketDisplayDescription = "All Tickets for Project: " + projects.Name; ViewData["TicketsCollection"] = projects.Tickets.ToList(); //Get users in roles for project details data var allDevelopers = userRolesHelper.GetAllUsersInRole("Developer").OrderBy(u => u.DisplayName); var developersInProject = allDevelopers.Where(u => u.Projects.Contains(projects)); var allProjectManagers = userRolesHelper.GetAllUsersInRole("Project Manager").OrderBy(u => u.DisplayName); var projectManagersInProject = allProjectManagers.Where(u => u.Projects.Contains(projects)); var ProjectDetailsVM = new ProjectDetailsVM(); ProjectDetailsVM.Project = projects; ProjectDetailsVM.DeveloperCount = developersInProject.Count(); ProjectDetailsVM.ProjectManagers = projectManagersInProject.ToList(); ProjectDetailsVM.TotalTickets = projects.Tickets.Count(); ProjectDetailsVM.UnassignedCount = projects.Tickets.Where(t => t.AssignedToUser == null).Count(); //Data for create ticket partial ViewBag.TicketPriorityID = new SelectList(db.TicketPriorities, "Id", "Name"); ViewBag.TicketTypeID = new SelectList(db.TicketTypes, "Id", "Name"); return(View(ProjectDetailsVM)); }
async public Task <IHttpActionResult> Details(int Id) { var project = await Db.Projects.Include(c => c.Client).Include("ProjectBillingType").SingleOrDefaultAsync(p => p.Id == Id); var projectCommision = await Db.ProjectComission.Include(e => e.Employee).FirstOrDefaultAsync(p => p.ProjectId == Id); var stockEquiOut = await Db.StockEquipmentOut.Include(e => e.Equipment).Include(a => a.EquipmentType).Where(s => s.IsFirstTime == true && s.ProjectId == Id).ToListAsync(); var stockCableOut = await Db.StockCableOut.Include(e => e.CableRoll).Where(c => c.IsFirstTime == true && c.ProjectId == Id).ToListAsync(); var projectVM = new ProjectDetailsVM() { Project = project, ProjectComission = projectCommision, StockCableOuts = stockCableOut, StockEquipmentOuts = stockEquiOut }; return(Ok(projectVM)); }
// GET: Projects/Details/5 public IActionResult Details(Guid id) { if (id == null) { return(NotFound()); } else { Project _project = _context.Projects.Include(p => p.workstream).Include(p => p.ProjectOwner).Include(p => p.pIDType).Where(p => p.ProjectId == id).FirstOrDefault(); //this appears to be lazyloading and causing an issue //Project _project = await _context.Projects.SingleOrDefaultAsync(m => m.ProjectId == id); if (_project == null) { return(NotFound()); } else { int wksNum = _context.Projects.Find(id).workstream.WorkstreamId; ProjectDetailsVM pvm = new ProjectDetailsVM { project = _project }; if (_project.ProjectOwner != null) { pvm.ownerName = _project.ProjectOwner.UserName; } if (_project.workstream != null) { pvm.workstreamName = _project.workstream.WorkstreamName; } if (_project.pIDType != null) { pvm.typeName = _project.pIDType.PIDTypeName; } return(View(pvm)); } } }
public IActionResult Details(int id) { var project = projectManager.GetProject(id); if (project != null) { var projectVm = new ProjectDetailsVM { Id = id, Name = project.Name }; /* * var projectMembers = project.ProjectMembers.ToList(); * foreach (var item in projectMembers) * { * var member = new MemberVM { Name = item.Member.FirstName, JobTitle = item.Member.JobTitle }; * projectVm.Members.Add(member); * }*/ return(View(projectVm)); } return(View("NotFound")); }
/// <summary> /// The Details method gets the details about a specific project with the project id. /// </summary> /// <param name="projectId">The projectId<see cref="int"/></param> /// <returns>The <see cref="IActionResult"/> returns a view of the VM</returns> public IActionResult Details([Bind(Prefix = "id")] int projectId) { //Read in a project and project roles. var proName = _projectRepo.Read(projectId); var projectRole = _projectRoleRepo.ReadAll(); ProjectDetailsVM model = new ProjectDetailsVM { ProjectId = projectId, Name = proName.Name, StartDate = proName.StartDate, DueDate = proName.DueDate, DaysLeft = (proName.DueDate - DateTime.Today).TotalDays, PeopleAssignedToProject = new List <Person>(), NumberOfPeopleAssigned = 0, ProjectRoles = new List <ProjectRole>(), PersonRoles = new Dictionary <Person, List <Role> >() }; //Loop through each project role foreach (var each in projectRole) { //if the project role id equals the project id passed in, enter. if (each.ProjectId == projectId) { //Read in the person var person = _personRepo.Read(each.PersonId); //Add the PR to the viewModel model.ProjectRoles.Add(each); //Make sure we have a person before trying to set the People to assign to project if (person != null) { //Assign person to project model.PeopleAssignedToProject.Add(person); } } } //Now, loop through each of the people assigned to the project foreach (var per in model.PeopleAssignedToProject) { //Define a list for later List <Role> roleList = new List <Role>(); //Loop through each of the PRs foreach (var item in model.ProjectRoles) { //If we fine a PR person id that matches the people we are looping through, enter. if (per.Id == item.PersonId) { //Get the role name with role id from PR var readRole = _roleRepo.Read(item.RoleId); //Add the role to roleList roleList.Add(readRole); } } // ----MIGHT NEED TO REMOVE ROLELIST == NULL ---- //If the roleList is null, add an empty object so it doesn't have a null value. if (roleList == null) { roleList.Add(new Role()); //Add people that a person model.PersonRoles.Add(per, roleList); } else { //Check if the person has already been added if (!model.PersonRoles.ContainsKey(per)) { //Add a person and their roles on the project model.PersonRoles.Add(per, roleList); } } } //Set the number of people assigned to the project model.NumberOfPeopleAssigned = model.PersonRoles.Count; return(View(model)); }