public static ProjectTeamMemberModel Create(ProjectModel project = null, UserModel user = null) { user = user ?? UserFaker.Create(); project = project ?? ProjectFaker.Create(); return(ProjectTeamMemberRepository.CreateAndGet( project, user )); }
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 Delete(ProjectModel project) { var teamMembers = ProjectTeamMemberRepository.Get(project); foreach (var member in teamMembers) { member.Delete(); } project.Alias()?.Delete(); project.Delete(); }
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); }
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 ); }
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())); }
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 )); }); }