public async Task <ActionResult> CreateProject()
        {
            MyProjectsViewModel model = new MyProjectsViewModel();

            Project     project            = new Project();
            List <User> ProjectManagerList = new List <User>();

            var AllUsers = await _userRepository.GetAllUsers();

            foreach (var user in AllUsers)
            {
                if (user.Role == "Project Manager")
                {
                    ProjectManagerList.Add(user);
                }
            }


            model.ProjectManagerList = ProjectManagerList;


            model.UserList = AllUsers;
            model.Project  = project;

            return(View("CreateProject", model));
        }
Exemplo n.º 2
0
        public MyProjectsPage()
        {
            NavigationPage.SetBackButtonTitle(this, "");
            InitializeComponent();
            //HockeyApp.MetricsManager.TrackEvent("MyProjectsPage Initialize");

            BindingContext = viewModel = new MyProjectsViewModel()
            {
                Title = "Projects"
            };

            InitListViews();
        }
        public async Task <IActionResult> MyProjects()
        {
            var userId      = userManager.GetUserId(HttpContext.User);
            var userName    = userManager.GetUserName(HttpContext.User);
            var currentUser = await userManager.FindByIdAsync(userId);

            var currentUserClaims = await userManager.GetClaimsAsync(currentUser);

            Global.globalCurrentUserClaims = currentUserClaims.ToList();

            var projectList = _projectRepository.GetAllOwnedProjects(userId).Result;

            foreach (var project in projectList)
            {
                var projectIssueList = new List <ProjectIssue>();
                var projectIssues    = _issueRepository.GetAllProjectIssues(project.ProjectId);

                foreach (var issue in projectIssues)
                {
                    var projectIssue = new ProjectIssue
                    {
                        IssueId   = issue.IssueId,
                        ProjectId = issue.AssociatedProject
                    };
                    projectIssueList.Add(projectIssue);
                }
                project.ProjectIssues = projectIssueList;
            }

            var viewModel = new MyProjectsViewModel
            {
                ProjectList = projectList,
                UserId      = userId
            };

            return(View(viewModel));
        }
        public async Task <IActionResult> Index(Project Project = null)
        {
            // GETTING AUTH0 USER DETAILS OF CURRENT SIGNED IN USER
            string UserID = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;



            List <Project> ProjectList = new List <Project>();

            // Model for view
            MyProjectsViewModel model = new MyProjectsViewModel();


            var currentUser = await _userRepository.GetUser(UserID);

            // If UserID does not exist in MongoDB, then call Auth0 API get to new users details
            if (currentUser == null)
            {
                // Call Auth0 API to get user details to fill out User class
                var client  = new RestClient("https://wussubininja.au.auth0.com/api/v2/users/" + UserID);
                var request = new RestRequest(Method.GET);
                request.AddHeader("authorization", "Bearer " + GetAuthorizationToken());
                request.AddHeader("content-type", "application/json");
                IRestResponse response = client.Execute(request);

                var userJson = JObject.Parse(response.Content);

                User newUser = new User();

                newUser.ID                  = UserID;
                newUser.UserName            = userJson.SelectToken("name").ToString();
                newUser.Email               = userJson.SelectToken("email").ToString();
                newUser.Role                = "Submitter";
                newUser.Projects            = new List <string>();
                newUser.Issues              = new List <string>();
                newUser.NumProjects         = 0;
                newUser.DOB                 = "";
                newUser.About               = "";
                newUser.Location            = "";
                newUser.Skills              = "";
                newUser.Education           = "";
                newUser.AccountImageDefault = userJson.SelectToken("picture").ToString();;

                currentUser = newUser;
                // Create User
                await _userRepository.Create(newUser);
            }



            var x = User.Claims.ToList();


            if (currentUser.Projects != null)
            {
                foreach (var project in currentUser.Projects)
                {
                    string projectIDCode = project.Split(':')[0].Replace("\"", "");

                    ProjectList.Add(await _projectRepository.GetProject(projectIDCode));
                }
            }
            else
            {
                currentUser.Projects = new List <string>();
            }


            if (model.ProjectList == null)
            {
                model.ProjectList = new List <Project>();
            }

            model.ProjectList = ProjectList;
            return(View(model));
        }
        public async Task <IActionResult> ViewProject(Project Project = null, string ProjectIDCode = null)
        {
            // Sorting users assigned to selected project
            List <User>  UsersAssignedList    = new List <User>();
            List <User>  UsersNotAssignedList = new List <User>();
            List <Issue> IssueList            = new List <Issue>();

            // Model for view
            MyProjectsViewModel model = new MyProjectsViewModel();


            if (ProjectIDCode != null)
            {
                Project = await _projectRepository.GetProject(ProjectIDCode);
            }
            else
            {
                Project = await _projectRepository.GetProject(Project.IDCode);
            }

            if (Project == null)
            {
                Project = new Project();
                //Project.Issues = IssueList;
            }


            var AllUsers = await _userRepository.GetAllUsers();

            List <User> ProjectManagerList = new List <User>();


            if (Project.IDCode != null)
            {
                if (Project.Users == null)
                {
                    Project.Users = new List <string>();
                }


                foreach (var user in Project.Users)
                {
                    UsersAssignedList.Add(await _userRepository.GetUser(user));
                }

                List <User> AllUsersList = AllUsers.ToList();
                AllUsersList.RemoveAll(x => UsersAssignedList.Any(y => y.ID == x.ID));
                UsersNotAssignedList = AllUsersList;

                foreach (var issue in Project.Issues)
                {
                    //var x = issue.Split(':')[0];
                    //x.Replace("\"", "");
                    IssueList.Add(await _issueRepository.GetIssue(issue.Split(':')[0].Replace("\"", "")));
                }
            }


            model.ProjectList = await _projectRepository.GetAllProjects();

            model.UsersAssignedList    = UsersAssignedList;
            model.UsersNotAssignedList = UsersNotAssignedList;
            model.IssueList            = IssueList;


            model.Project = Project;
            return(View(model));
        }