public static ProjectUser ProjectUserFetch(int projectUserId)
 {
     return(ProjectUser.FetchProjectUser(
                new ProjectUserMemberDataCriteria
     {
         ProjectUserMemberId = projectUserId
     }));
 }
예제 #2
0
        internal static ProjectUser FetchProjectUser(ProjectUserMemberData data)
        {
            var result = new ProjectUser();

            result.Fetch(data);
            result.MarkOld();

            return result;
        }
예제 #3
0
        internal static void FeedAdd(string action, ProjectUser projectUser)
        {
            var feed = FeedRepository.FeedNew(action, SourceType.ProjectUser, projectUser.ProjectUserMemberId);

            feed.Sources.Add(SourceType.Project, projectUser.ProjectId);
            feed.Sources.Add(SourceType.User, projectUser.UserId);

            feed.Save();
        }
예제 #4
0
        internal static ProjectUser FetchProjectUser(ProjectUserMemberData data)
        {
            var result = new ProjectUser();

            result.Fetch(data);
            result.MarkOld();

            return(result);
        }
        public static ProjectUser ProjectUserAdd(int projectId, int userId, Role role)
        {
            var projectUser = ProjectUser.NewProjectUser(projectId, userId);

            projectUser.RoleId = (int)role;

            projectUser = ProjectUserRepository.ProjectUserSave(projectUser);

            return(projectUser);
        }
        public static ProjectUser ProjectUserInsert(ProjectUser projectUser)
        {
            projectUser = projectUser.Save();

            SourceRepository.SourceAdd(projectUser.ProjectUserMemberId, SourceType.ProjectUser, string.Empty);

            FeedRepository.FeedAdd(FeedAction.Created, projectUser);

            return(projectUser);
        }
        public static ProjectUser ProjectUserUpdate(ProjectUser projectUser)
        {
            if (!projectUser.IsDirty)
            {
                return(projectUser);
            }

            projectUser = projectUser.Save();

            SourceRepository.SourceUpdate(projectUser.ProjectUserMemberId, SourceType.ProjectUser, string.Empty);

            FeedRepository.FeedAdd(FeedAction.Edited, projectUser);

            return(projectUser);
        }
        internal static ProjectUser ProjectUserAdd(int projectId, int userId, Role role, bool ignoreAuthorization)
        {
            var projectUser = ProjectUser.NewProjectUser(projectId, userId);

            projectUser.RoleId = (int)role;

            if (ignoreAuthorization)
            {
                projectUser = ProjectUserRepository.ProjectUserInsert(projectUser);
            }
            else
            {
                projectUser = ProjectUserRepository.ProjectUserSave(projectUser);
            }

            return(projectUser);
        }
        public static bool ProjectUserDelete(ProjectUser projectUser)
        {
            ProjectUserRepository.AuthorizeProjectUser(projectUser.ProjectId);

            if (ProjectUserRepository.ProjectUserFetch(
                projectUser.ProjectId, projectUser.UserId).RoleId == (int)Role.Owner)
            {
                throw new NotSupportedException("You cannot delete the owner of a project");
            }

            ProjectUser.DeleteProjectUser(
                new ProjectUserMemberDataCriteria
                {
                    ProjectUserMemberId = projectUser.ProjectUserMemberId
                });

            FeedRepository.FeedAdd(FeedAction.Deleted, projectUser);

            return true;
        }
        public static bool ProjectUserDelete(ProjectUser projectUser)
        {
            ProjectUserRepository.AuthorizeProjectUser(projectUser.ProjectId);

            if (ProjectUserRepository.ProjectUserFetch(
                    projectUser.ProjectId, projectUser.UserId).RoleId == (int)Role.Owner)
            {
                throw new NotSupportedException("You cannot delete the owner of a project");
            }

            ProjectUser.DeleteProjectUser(
                new ProjectUserMemberDataCriteria
            {
                ProjectUserMemberId = projectUser.ProjectUserMemberId
            });

            FeedRepository.FeedAdd(FeedAction.Deleted, projectUser);

            return(true);
        }
        public static ProjectUser ProjectUserSave(ProjectUser projectUser)
        {
            if (!projectUser.IsValid)
            {
                return(projectUser);
            }

            ProjectUserRepository.AuthorizeProjectUser(projectUser.ProjectId);

            ProjectUser result;

            if (projectUser.IsNew)
            {
                result = ProjectUserRepository.ProjectUserInsert(projectUser);
            }
            else
            {
                result = ProjectUserRepository.ProjectUserUpdate(projectUser);
            }

            return(result);
        }
예제 #12
0
        public static ProjectUser ProjectUserUpdate(ProjectUser projectUser)
        {
            if (!projectUser.IsDirty)
            {
                return projectUser;
            }

            projectUser = projectUser.Save();

            SourceRepository.SourceUpdate(projectUser.ProjectUserMemberId, SourceType.ProjectUser, string.Empty);

            FeedRepository.FeedAdd(FeedAction.Edited, projectUser);

            return projectUser;
        }
예제 #13
0
        public static ProjectUser ProjectUserSave(ProjectUser projectUser)
        {
            if (!projectUser.IsValid)
            {
                return projectUser;
            }

            ProjectUserRepository.AuthorizeProjectUser(projectUser.ProjectId);

            ProjectUser result;

            if (projectUser.IsNew)
            {
                result = ProjectUserRepository.ProjectUserInsert(projectUser);
            }
            else
            {
                result = ProjectUserRepository.ProjectUserUpdate(projectUser);
            }

            return result;
        }
예제 #14
0
        public static ProjectUser ProjectUserInsert(ProjectUser projectUser)
        {
            projectUser = projectUser.Save();

            SourceRepository.SourceAdd(projectUser.ProjectUserMemberId, SourceType.ProjectUser, string.Empty);

            FeedRepository.FeedAdd(FeedAction.Created, projectUser);

            return projectUser;
        }
예제 #15
0
        internal static void FeedAdd(string action, ProjectUser projectUser)
        {
            var feed = FeedRepository.FeedNew(action, SourceType.ProjectUser, projectUser.ProjectUserMemberId);

            feed.Sources.Add(SourceType.Project, projectUser.ProjectId);
            feed.Sources.Add(SourceType.User, projectUser.UserId);

            feed.Save();
        }
        public static ProjectUser ProjectUserNew(int projectId, int userId)
        {
            var projectUser = ProjectUser.NewProjectUser(projectId, userId);

            return(projectUser);
        }