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);
        }
Exemple #4
0
        public static void Delete(ProjectModel project)
        {
            var teamMembers = ProjectTeamMemberRepository.Get(project);

            foreach (var member in teamMembers)
            {
                member.Delete();
            }

            project.Alias()?.Delete();

            project.Delete();
        }
Exemple #5
0
        public static bool HasEntityPermission(User user, int entityId, EntityType entityType)
        {
            if (!EntityUtils.IsEntityExists(entityId, entityType))
            {
                return(false);
            }
            switch (entityType)
            {
            case EntityType.Project:
                var project = ProjectRepository.Find(entityId);
                if (project != null && ProjectTeamMemberRepository.IsExists(project, user))
                {
                    return(true);
                }
                break;

            case EntityType.Board:
                var board = BoardRepository.Find(entityId);
                if (board != null && ProjectTeamMemberRepository.IsExists(board.Project(), user))
                {
                    return(true);
                }
                break;

            case EntityType.BoardColumn:
                var column = BoardColumnRepository.Find(entityId);
                if (column != null && ProjectTeamMemberRepository.IsExists(column.Board().Project(), user))
                {
                    return(true);
                }
                break;

            case EntityType.Card:
                var card = CardRepository.Find(entityId);
                // TODO: optimize?
                if (card != null && ProjectTeamMemberRepository.IsExists(card.Column().Board().Project(), user))
                {
                    return(true);
                }
                break;
            }
            return(false);
        }
Exemple #6
0
        public void Create_DataCorrect_ProjectTeamMemberCreated()
        {
            var user    = UserFaker.Create();
            var project = ProjectFaker.Create(user);
            var browser = new Browser(new DefaultNancyBootstrapper());

            var result = browser.Post("/api/v1/project_team_member/create", with => {
                with.HttpRequest();
                with.Query("api_token", Jwt.FromUserId(user.id));
                with.Query("project_guid", project.guid);
                with.Query("user_guid", user.guid);
            }).Result;

            Assert.AreEqual(HttpStatusCode.Created, result.StatusCode);

            var createdTeamMember = ProjectTeamMemberRepository.Find(project, user);

            Assert.NotNull(createdTeamMember);
            Assert.AreEqual(project.id, createdTeamMember.project_id);
            Assert.AreEqual(user.id, createdTeamMember.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
                );
        }
Exemple #8
0
        public void Delete_DataCorrect_ProjectTeamMemberDeleted()
        {
            var browser = new Browser(new DefaultNancyBootstrapper());

            var user = UserFaker.Create();

            var teamMember = ProjectTeamMemberFaker.Create();

            ProjectTeamMemberFaker.Create(teamMember.Project(), user);

            Assert.NotNull(ProjectTeamMemberRepository.Find(teamMember.Project(), teamMember.User()));

            var result = browser.Delete("/api/v1/project_team_member/delete", with => {
                with.HttpRequest();
                with.Query("api_token", Jwt.FromUserId(user.id));
                with.Query("project_guid", teamMember.Project().guid);
                with.Query("user_guid", teamMember.User().guid);
            }).Result;

            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);

            Assert.IsNull(ProjectTeamMemberRepository.Find(teamMember.Project(), teamMember.User()));
        }
Exemple #9
0
        public ProjectTeamMemberController()
        {
            Get("/api/v1/project_team_member/get", _ => {
                var errors = ValidationProcessor.Process(Request, new IValidatorRule[] {
                    new ExistsInTable("project_guid", "projects", "guid"),
                    new ExistsInTable("user_guid", "users", "guid")
                });
                if (errors.Count > 0)
                {
                    return(HttpResponse.Errors(errors));
                }

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

                var teamMember = ProjectTeamMemberRepository.Find(project, user);

                return(HttpResponse.Item(
                           "project_team_member",
                           teamMember != null ? new ProjectTeamMemberTransformer().Transform(teamMember) : null
                           ));
            });
        }