private void PopulateFieldData()
        {
            var role = Claims[3].Value.ToString();

            Enum.TryParse(role, out Role userRole);
            if (userRole == Role.User)
            {
                Users.Clear();
                Projects.Clear();
                Users.Add(UserRepository.GetUser(Claims[0].Value.ToString()));
                var assignedProject = ProjectUserRepository.GetAssignedProject(Claims[0].Value.ToString());
                if (assignedProject != null)
                {
                    Projects.Add(assignedProject.ProjectRef);
                }
            }
            else
            {
                Users    = UserRepository.GetUsers();
                Projects = ProjectRepository.GetProjects();
            }
            LogHistoryFilterModel.StartDate = DateTime.Now.AddDays(-7);
            LogHistoryFilterModel.EndDate   = DateTime.Now;
            var project = ProjectUserRepository.GetAssignedProject(Claims[0].Value);

            if (project != null)
            {
                LogHistoryFilterModel.Project = project.ProjectRef.Name ?? project.ProjectRef.Name;
            }
            LogHistoryFilterModel.UserName = Claims[1].Value;
        }
Beispiel #2
0
        public ActionResult Edit(int id, FormCollection collection)
        {
            var model   = new StoryFormModel();
            var story   = StoryRepository.StoryFetch(id);
            var project = ProjectRepository.ProjectFetch(story.ProjectId);

            this.Map(collection, story);

            story = StoryRepository.StorySave(story);

            if (story.IsValid)
            {
                return(this.RedirectToAction("Details", new { id = story.StoryId }));
            }

            model.Title    = "Story Edit";
            model.Story    = story;
            model.Sprints  = SprintRepository.SprintFetchInfoList(project);
            model.Statuses = StatusRepository.StatusFetchInfoList(story.ProjectId);
            model.Users    = ProjectUserRepository.ProjectUserFetchInfoList(story.ProjectId);

            ModelHelper.MapBrokenRules(this.ModelState, story);

            return(this.View(model));
        }
Beispiel #3
0
        public void UpdateRecordAsync_UpdatesExistingRecordIfItDoesntExists()
        {
            var context = GetContext();

            try
            {
                ProjectUserRepository repo = new ProjectUserRepository(context);
                ProjectUser           rec  = new ProjectUser
                {
                    UserId     = "2138b181-4cee-4b85-9f16-18df308f387d",
                    ProjectId  = 2,
                    UserRoleId = AppUserRole.Observer.Id
                };

                repo.UpdateRecordAsync(rec).Wait();

                var rc = repo.GetRecordAsync("2138b181-4cee-4b85-9f16-18df308f387d", 2).Result;

                Assert.Equal(4, context.ProjectUsers.Count());
                Assert.Equal(AppUserRole.Observer.Id, rc.UserRoleId);
            }
            finally
            {
                context.Database.EnsureDeleted();
                context.Dispose();
            }
        }
        // POST: api/ProjectUser
        public IHttpActionResult Post([FromBody] List <ProjectUser> projectUsers)
        {
            ProjectUserRepository projectUserRepository = new ProjectUserRepository(Convert.ToInt32(Request.Headers.GetValues("CurrentUserID").First()));

            projectUserRepository.SaveProjectUsers(projectUsers);
            return(Json(new { count = projectUsers.Count.ToString() }));
        }
        public IHttpActionResult Get()
        {
            ProjectUserRepository projectUserRepository = new ProjectUserRepository(Convert.ToInt32(Request.Headers.GetValues("CurrentUserID").First()));
            List <ProjectUser>    projectUserList       = projectUserRepository.GetProjectUsers();

            return(Json(new { ProjectUsers = projectUserList }));
        }
        public ActionResult Details(int id)
        {
            var model   = new ProjectFormModel();
            var project = ProjectRepository.ProjectFetch(id);

            model.Title       = string.Format("Project {0}", project.Name);
            model.Project     = project;
            model.Notes       = NoteRepository.NoteFetchInfoList(id, SourceType.Project);
            model.Attachments = AttachmentRepository.AttachmentFetchInfoList(
                model.Notes.Select(row => row.NoteId).Distinct().ToArray(), SourceType.Note);
            model.Sprints           = SprintRepository.SprintFetchInfoList(project);
            model.Statuses          = StatusRepository.StatusFetchInfoList(id);
            model.Stories           = StoryRepository.StoryFetchInfoList(project, false);
            model.Users             = ProjectUserRepository.ProjectUserFetchInfoList(id);
            model.TimelineListModel = new TimelineListModel
            {
                Timelines    = TimelineRepository.TimelineFetchInfoList(project),
                SourceId     = project.SourceId,
                SourceTypeId = (int)project.SourceType
            };
            model.Actions.Add("Edit this project", Url.Action("Edit", new { id }), "primary");
            model.Actions.Add("Add a story", Url.Action("Create", "Story", new { projectId = id }));
            model.Actions.Add("Add a sprint", Url.Action("Create", "Sprint", new { projectId = id }));
            model.Actions.Add("Add an email", string.Empty);
            model.Actions.Add("Add a note", Url.Action("Create", "Note", new { sourceId = id, sourceTypeId = (int)SourceType.Project }));
            model.Actions.Add("Add a collaborator", Url.Action("Create", "ProjectUser", new { projectId = id }));
            model.Actions.Add("Add a status", Url.Action("Create", "Status", new { projectId = id }));

            return(this.View(model));
        }
Beispiel #7
0
 public ProjectMutation(ProjectRepository project, UserRepository repository, ProjectUserRepository userProjectRepositorie, TimeReportRepository timeReportRepository, IHttpContextAccessor accessor)
 {
     Field <ProjectType>("createProject",
                         arguments: new QueryArguments(new QueryArgument <NonNullGraphType <ProjectInputType> > {
         Name = "input"
     }),
                         resolve: context => project.Create(context.GetArgument <Project>("input"), accessor.HttpContext)
                         );
     Field <UserType>("createUser",
                      arguments: new QueryArguments(new QueryArgument <NonNullGraphType <UserInputType> > {
         Name = "input"
     }),
                      resolve: context => repository.Create(context.GetArgument <User>("input"), accessor.HttpContext)
                      );
     Field <ProjectUserType>("createProjectUser",
                             arguments: new QueryArguments(new QueryArgument <NonNullGraphType <ProjectUserInputType> > {
         Name = "input"
     }),
                             resolve: context => userProjectRepositorie.Create(context.GetArgument <ProjectUser>("input"), accessor.HttpContext)
                             );
     Field <ProjectType>("addUser",
                         arguments: new QueryArguments(new QueryArgument <NonNullGraphType <ProjectUserInputType> > {
         Name = "input"
     }),
                         resolve: context => project.addUser(context.GetArgument <ProjectUser>("input"), accessor.HttpContext)
                         );
     Field <TimeReportType>("createTimeReport",
                            arguments: new QueryArguments(new QueryArgument <NonNullGraphType <TimeReportInputType> > {
         Name = "input"
     }),
                            resolve: context => timeReportRepository.Create(context.GetArgument <TimeReport>("input"), accessor.HttpContext)
                            );
     Field <ProjectType>("updateProject",
                         arguments: new QueryArguments(new QueryArgument <NonNullGraphType <ProjectInputType> > {
         Name = "input"
     }, new QueryArgument <NonNullGraphType <IntGraphType> > {
         Name = "id"
     }),
                         resolve: context => project.update(context.GetArgument <int>("id"), context.GetArgument <Project>("input"), accessor.HttpContext)
                         );
     Field <ProjectType>("deleteUserFromProject",
                         arguments: new QueryArguments(new QueryArgument <NonNullGraphType <ProjectUserInputType> > {
         Name = "input"
     }),
                         resolve: context => project.deleteUser(context.GetArgument <ProjectUser>("input"), accessor.HttpContext)
                         );
     Field <UserType>("deleteUser",
                      arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > {
         Name = "input"
     }),
                      resolve: context => repository.deleteUser(context.GetArgument <int>("input"), accessor.HttpContext)
                      );
     Field <ProjectType>("deleteProject",
                         arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IntGraphType> > {
         Name = "input"
     }),
                         resolve: context => project.deleteProject(context.GetArgument <int>("input"), accessor.HttpContext)
                         );
 }
        public ActionResult Delete(int id, FormCollection collection)
        {
            var projectUser = ProjectUserRepository.ProjectUserFetch(id);

            ProjectUserRepository.ProjectUserDelete(id);

            return(this.RedirectToAction("Details", "Project", new { id = projectUser.ProjectId }));
        }
Beispiel #9
0
        public static ProjectUser ProjectUserAdd()
        {
            var projectUserMember = ProjectUserTestHelper.ProjectUserNew();

            projectUserMember = ProjectUserRepository.ProjectUserSave(projectUserMember);

            return(projectUserMember);
        }
Beispiel #10
0
        public void ProjectUser_Fetch_Info_List()
        {
            ProjectUserTestHelper.ProjectUserAdd();
            ProjectUserTestHelper.ProjectUserAdd();

            var projectUserMembers = ProjectUserRepository.ProjectUserFetchInfoList(new ProjectUserMemberDataCriteria());

            Assert.IsTrue(projectUserMembers.Count() > 1, "Row returned should be greater than one");
        }
Beispiel #11
0
        public void DeleteUser(string id)
        {
            UserRepository.DeleteUser(id);
            var projectUser = ProjectUserRepository.GetAssignedProject(id);

            ProjectUserRepository.RemoveAssignedUser(projectUser);
            UserLogRepository.RemoveUserLogsByUserId(id);
            UpdateChild();
        }
Beispiel #12
0
        public void DeleteProject(string id)
        {
            var projectId = Convert.ToInt32(id);

            ProjectUserRepository.RemoveProject(projectId);
            UserLogRepository.RemoveUserLogsByProjectId(projectId);
            ProjectRepository.RemoveProject(projectId);
            UpdateChilds(projectId);
        }
Beispiel #13
0
        public void ProjectUser_Fetch()
        {
            var projectUserMember = ProjectUserTestHelper.ProjectUserNew();

            projectUserMember = ProjectUserRepository.ProjectUserSave(projectUserMember);

            projectUserMember = ProjectUserRepository.ProjectUserFetch(projectUserMember.ProjectUserMemberId);

            Assert.IsTrue(projectUserMember != null, "Row returned should not equal null");
        }
        public ActionResult Create(int projectId, int userId)
        {
            var model       = new ProjectUserFormModel();
            var projectUser = ProjectUserRepository.ProjectUserNew(projectId, userId);

            projectUser.RoleId = (int)Role.Collaborator;

            projectUser = ProjectUserRepository.ProjectUserSave(projectUser);

            return(this.RedirectToAction("Details", "Project", new { id = projectUser.ProjectId }));
        }
Beispiel #15
0
        public static ProjectUser ProjectUserNew(Role roleId)
        {
            var project = ProjectTestHelper.ProjectAdd();
            var user    = UserTestHelper.UserAdd();

            var projectUserMember = ProjectUserRepository.ProjectUserNew(project.ProjectId, user.UserId);

            projectUserMember.RoleId = (int)roleId;

            return(projectUserMember);
        }
        public ActionResult Create(int projectId)
        {
            var model       = new ProjectUserFormModel();
            var projectUser = ProjectUserRepository.ProjectUserNew(projectId, 0);

            model.Title        = "Project User Create";
            model.Users        = UserRepository.UserFetchInfoList();
            model.ProjectUser  = projectUser;
            model.ProjectUsers = ProjectUserRepository.ProjectUserFetchInfoList(projectId);

            return(this.View(model));
        }
Beispiel #17
0
        public void ProjectUser_Add()
        {
            var projectUserMember = ProjectUserTestHelper.ProjectUserNew();

            Assert.IsTrue(projectUserMember.IsValid, "IsValid should be true");

            projectUserMember = ProjectUserRepository.ProjectUserSave(projectUserMember);

            Assert.IsTrue(projectUserMember.ProjectUserMemberId != 0, "ProjectUserMemberId should be a non-zero value");

            ProjectUserRepository.ProjectUserFetch(projectUserMember.ProjectUserMemberId);
        }
Beispiel #18
0
        public ActionResult Edit(int id)
        {
            var model   = new StoryFormModel();
            var story   = StoryRepository.StoryFetch(id);
            var project = ProjectRepository.ProjectFetch(story.ProjectId);

            model.Title    = "Story Edit";
            model.Story    = story;
            model.Sprints  = SprintRepository.SprintFetchInfoList(project);
            model.Statuses = StatusRepository.StatusFetchInfoList(story.ProjectId);
            model.Users    = ProjectUserRepository.ProjectUserFetchInfoList(story.ProjectId);

            return(this.View(model));
        }
        public ActionResult Delete(int id)
        {
            var model       = new DeleteModel();
            var projectUser = ProjectUserRepository.ProjectUserFetch(id);

            model.Title          = "Project User Delete";
            model.Id             = projectUser.ProjectUserMemberId;
            model.Name           = "Project User";
            model.Description    = projectUser.UserName;
            model.ControllerName = "ProjectUser";
            model.BackUrl        = Url.Action("Details", "Project", new { id = projectUser.ProjectId });

            return(this.View(model));
        }
Beispiel #20
0
        public ActionResult Create(int projectId, int?sprintId)
        {
            var model   = new StoryFormModel();
            var story   = StoryRepository.StoryNew();
            var project = ProjectRepository.ProjectFetch(projectId);

            story.ProjectId = projectId;
            story.SprintId  = sprintId ?? 0;

            model.Title    = "Story Create";
            model.Story    = story;
            model.Sprints  = SprintRepository.SprintFetchInfoList(project);
            model.Statuses = StatusRepository.StatusFetchInfoList(story.ProjectId);
            model.Users    = ProjectUserRepository.ProjectUserFetchInfoList(story.ProjectId);

            return(this.View(model));
        }
Beispiel #21
0
        public void GetMembersOfProject_ReturnsEmptyResIfNoProjects()
        {
            var context = GetContext();

            try
            {
                ProjectUserRepository repo = new ProjectUserRepository(context);

                var res = repo.GetMembersOfProject(123).Result;

                Assert.Empty(res);
            }
            finally
            {
                context.Database.EnsureDeleted();
                context.Dispose();
            }
        }
Beispiel #22
0
        public void GetOwnerOfProject_ReturnsOwnerIfProjExists()
        {
            var context = GetContext();

            try
            {
                ProjectUserRepository repo = new ProjectUserRepository(context);

                var user = repo.GetOwnerOfProject(1).Result;

                Assert.Equal("2138b181-4cee-4b85-9f16-18df308f387d", user.Id);
            }
            finally
            {
                context.Database.EnsureDeleted();
                context.Dispose();
            }
        }
Beispiel #23
0
        public void GetOwnerOfProject_ReturnsNullIfProjDoesntExist()
        {
            var context = GetContext();

            try
            {
                ProjectUserRepository repo = new ProjectUserRepository(context);

                var user = repo.GetOwnerOfProject(123).Result;

                Assert.Null(user);
            }
            finally
            {
                context.Database.EnsureDeleted();
                context.Dispose();
            }
        }
Beispiel #24
0
        public void GetRoleOfMember_ReturnsRole_Owner()
        {
            var context = GetContext();

            try
            {
                ProjectUserRepository repo = new ProjectUserRepository(context);

                var role = repo.GetRoleOfMember("2138b181-4cee-4b85-9f16-18df308f387d", 1).Result;

                Assert.Equal(AppUserRole.Owner.Id, role.Id);
            }
            finally
            {
                context.Database.EnsureDeleted();
                context.Dispose();
            }
        }
Beispiel #25
0
        public void GetRoleOfMember_ReturnsRole_Developer()
        {
            var context = GetContext();

            try
            {
                ProjectUserRepository repo = new ProjectUserRepository(context);

                var role = repo.GetRoleOfMember("421cb65f-a76d-4a73-8a1a-d792f37ef992", 1).Result;

                Assert.Equal(AppUserRole.Developer.Id, role.Id);
            }
            finally
            {
                context.Database.EnsureDeleted();
                context.Dispose();
            }
        }
Beispiel #26
0
        public void GetRoleOfMember_ReturnsRole_NoMember()
        {
            var context = GetContext();

            try
            {
                ProjectUserRepository repo = new ProjectUserRepository(context);

                var role = repo.GetRoleOfMember("no-user-in-project", 1).Result;

                Assert.Equal(AppUserRole.None.Id, role.Id);
            }
            finally
            {
                context.Database.EnsureDeleted();
                context.Dispose();
            }
        }
Beispiel #27
0
        public void DoesExistScrumMasterInProjectAsync_ReturnsFalseIfScrumMasterDoesNotExist()
        {
            var context = GetContext();

            try
            {
                ProjectUserRepository repo = new ProjectUserRepository(context);

                var doesExist = repo.DoesExistScrumMasterInProjectAsync(1).Result;

                Assert.False(doesExist);
            }
            finally
            {
                context.Database.EnsureDeleted();
                context.Dispose();
            }
        }
Beispiel #28
0
        public void DoesExistMemberOfProject_ReturnsFalseIfMemberDoesNotExist()
        {
            var context = GetContext();

            try
            {
                ProjectUserRepository repo = new ProjectUserRepository(context);

                var doesExist = repo.DoesExistMemberOfProject("421cb65f-a76d-4a73-8a1a-d792f37ef992", 123).Result;

                Assert.False(doesExist);
            }
            finally
            {
                context.Database.EnsureDeleted();
                context.Dispose();
            }
        }
Beispiel #29
0
        public void GetRecordAsync_ReturnsRecordIfRecordExists()
        {
            AppDbContext context = GetContext();

            try
            {
                ProjectUserRepository repo = new ProjectUserRepository(context);

                ProjectUser rec = repo.GetRecordAsync("2138b181-4cee-4b85-9f16-18df308f387d", 1).Result;

                Assert.NotNull(rec);
            }
            finally
            {
                context.Database.EnsureDeleted();
                context.Dispose();
            }
        }
Beispiel #30
0
        public void GetRecordAsync_ReturnsNullIfRecordDoesntExists()
        {
            var context = GetContext();

            try
            {
                ProjectUserRepository repo = new ProjectUserRepository(context);

                ProjectUser rec = repo.GetRecordAsync("no-user", 1).Result;

                Assert.Null(rec);
            }
            finally
            {
                context.Database.EnsureDeleted();
                context.Dispose();
            }
        }