コード例 #1
0
        public ServiceCollectionResult <WorkItem> GetIssueWorkItems(long issueId, string userId)
        {
            var result = new ServiceCollectionResult <WorkItem>();
            //check can user get access to project
            var issue = _context.Issues
                        .SingleOrDefault(i => i.Id == issueId);

            if (issue != null)
            {
                //does user have any binding with project
                var projUserRef = _accessService.GetAccessByIssue(issue, userId);

                if (projUserRef == null)
                {
                    result.HandleError(ErrorMessagesDict.AccessDenied);
                }
                else
                {
                    result.TargetCollection = issue.WorkItems;  //get issue workitems
                }
                return(result);
            }

            result.HandleError(ErrorMessagesDict.NotFoundResource);
            return(result);
        }
コード例 #2
0
ファイル: IssueService.cs プロジェクト: GenPike/SMARTplanner
        public ServiceCollectionResult <Issue> GetIssuesPaged(string userId, string summaryPart = null, int page = 1, int pageSize = 10)
        {
            var result = new ServiceCollectionResult <Issue>();

            if (!Inspector.IsValidPageSize(pageSize))
            {
                result.HandleError(ErrorMessagesDict.InvalidPageSize);
                return(result);
            }

            //get accessible issues
            var accessibleIssues = _accessService.GetAccessibleIssues(userId);

            //filter issues
            if (summaryPart != null)
            {
                accessibleIssues = accessibleIssues
                                   .Where(i => i.Summary.Contains(summaryPart.ToLower()));
            }

            result.TargetCollection = accessibleIssues
                                      .Skip((page - 1) * pageSize)
                                      .Take(pageSize);
            return(result);
        }
コード例 #3
0
ファイル: ReportService.cs プロジェクト: GenPike/SMARTplanner
        public ServiceCollectionResult <Report> GetIssueReports(long issueId, string userId)
        {
            var result = new ServiceCollectionResult <Report>();
            //check can user get access to project
            var issue = _context.Issues
                        .SingleOrDefault(i => i.Id == issueId);

            if (issue != null)
            {
                var projUserRef = _accessService.GetAccessByIssue(issue, userId);

                if (projUserRef == null)
                {
                    result.HandleError(ErrorMessagesDict.AccessDenied);
                }
                else
                {
                    result.TargetCollection = issue.Reports;
                }

                return(result);
            }

            result.HandleError(ErrorMessagesDict.NotFoundResource);
            return(result);
        }
コード例 #4
0
        public ServiceCollectionResult <Project> GetProjectsPaged(string userId, ProjectFilter filter = ProjectFilter.All,
                                                                  int page = 1, int pageSize = 10)
        {
            var result = new ServiceCollectionResult <Project>();

            if (!Inspector.IsValidPageSize(pageSize))
            {
                result.HandleError(ErrorMessagesDict.InvalidPageSize);
                return(result);
            }
            IEnumerable <Project> targetProjects;

            if (filter != ProjectFilter.All)
            {
                if (filter == ProjectFilter.CreatedByMe)
                {
                    targetProjects = GetProjectsUserCreated(userId);
                }
                else
                {
                    targetProjects = GetProjectsUserInvolvedOnly(userId);
                }
            }
            else
            {
                targetProjects = _accessService.GetAccessibleProjects(userId);
            }

            result.TargetCollection = targetProjects
                                      .Skip((page - 1) * pageSize)
                                      .Take(pageSize);
            return(result);
        }
コード例 #5
0
        public ServiceCollectionResult <ProjectLog> GetItemHistory(long projectId, string userId)
        {
            var result  = new ServiceCollectionResult <ProjectLog>();
            var project = _context.Projects.SingleOrDefault(p => p.Id == projectId);

            if (project != null)
            {
                //find issue history
                var projectLogs = _context.ProjectsHistory
                                  .Where(ph => ph.ProjectId == projectId);

                if (_accessService.GetAccessByProject(projectId, userId) != null)
                {
                    result.TargetCollection = projectLogs;
                    return(result);
                }

                result.HandleError(ErrorMessagesDict.AccessDenied);
                return(result);
            }

            result.HandleError(ErrorMessagesDict.NotFoundResource);
            return(result);
        }
コード例 #6
0
        public ServiceCollectionResult<IssueLog> GetItemHistory(long issueId, string userId)
        {
            var result = new ServiceCollectionResult<IssueLog>();
            var issue = _context.Issues.SingleOrDefault(i => i.Id == issueId);

            if (issue != null)
            {
                //find issue history
                var issueLogs = _context.IssuesHistory
                    .Where(ih => ih.IssueId == issueId);

                if (_accessService.GetAccessByIssue(issue, userId) != null)
                {
                    result.TargetCollection = issueLogs;
                    return result;
                }

                result.HandleError(ErrorMessagesDict.AccessDenied);
                return result;
            }

            result.HandleError(ErrorMessagesDict.NotFoundResource);
            return result;
        }