// 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));
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #5
0
        // 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));
                }
            }
        }
Example #6
0
        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"));
        }
Example #7
0
        /// <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));
        }