Exemple #1
0
 public static ProjectTeamMemberModel Create(ProjectModel project = null, UserModel user = null)
 {
     user    = user ?? UserFaker.Create();
     project = project ?? ProjectFaker.Create();
     return(ProjectTeamMemberRepository.CreateAndGet(
                project,
                user
                ));
 }
Exemple #2
0
        public ProjectTeamMemberCrudController()
        {
            Post("/api/v1/project_team_member/create", _ => {
                var me      = UserRepository.Find(CurrentRequest.UserId);
                var project = ProjectRepository.FindByGuid(GetRequestStr("project_guid"));

                var errors = ValidationProcessor.Process(Request, new IValidatorRule[] {
                    new ShouldHaveParameters(new[] { "project_guid", "user_guid" }),
                    new ExistsInTable("project_guid", "projects", "guid"),
                    new ExistsInTable("user_guid", "users", "guid"),
                    new HasPermission(me, project.id, EntityType.Project),
                }, true);
                if (errors.Count > 0)
                {
                    return(HttpResponse.Errors(errors));
                }

                var user = UserRepository.FindByGuid(GetRequestStr("user_guid"));

                var projectTeamMember = ProjectTeamMemberRepository.CreateAndGet(project, user);

                return(HttpResponse.Item(
                           "project_team_member",
                           new ProjectTeamMemberTransformer().Transform(projectTeamMember), HttpStatusCode.Created
                           ));
            });



            Delete("/api/v1/project_team_member/delete", _ => {
                var me      = UserRepository.Find(CurrentRequest.UserId);
                var project = ProjectRepository.FindByGuid(GetRequestStr("project_guid"));

                var errors = ValidationProcessor.Process(Request, new IValidatorRule[] {
                    new ExistsInTable("project_guid", "projects", "guid"),
                    new ExistsInTable("user_guid", "users", "guid"),
                    new HasPermission(me, project.id, EntityType.Project)
                }, true);
                if (errors.Count > 0)
                {
                    return(HttpResponse.Errors(errors));
                }

                var projectTeamMember = ProjectTeamMemberRepository.FindByProjectAndUser(
                    GetRequestStr("project_guid"),
                    GetRequestStr("user_guid")
                    );
                projectTeamMember.Delete();

                return(HttpResponse.Item(
                           "project_team_member", new ProjectTeamMemberTransformer().Transform(projectTeamMember)
                           ));
            });
        }
        public void Find_DataCorrect()
        {
            var user    = UserFaker.Create();
            var project = ProjectFaker.Create();

            ProjectTeamMemberRepository.CreateAndGet(project, user);
            var teamMember = ProjectTeamMemberRepository.FindByProjectAndUser(project.guid, user.guid);

            Assert.AreEqual(teamMember.project_id, project.id);
            Assert.AreEqual(teamMember.user_id, user.id);
        }
        public static void Run(DL.Model.Project.Project project, User creator)
        {
            if (creator != null)
            {
                ProjectTeamMemberRepository.CreateAndGet(project, creator);
                UserLibraryItemRepository.FindOrCreate(project.Creator(), project);
            }

            ProjectAliasRepository.Create(project);
            ProjectWorkUtils.SetUp(project);

            // Basic boards set up
            var board      = BoardRepository.CreateAndGet("Development", "Basic board", project, creator);
            var todoColumn = BoardColumnRepository.CreateAndGet("TODO", board, 1);

            BoardColumnRepository.CreateAndGet("In progress", board, 2);
            BoardColumnRepository.CreateAndGet("Done", board, 3);
            CardRepository.CreateAndGet(
                "Example card", DefaultCardDescription, 1, todoColumn, creator
                );
        }