Esempio n. 1
0
        public ServiceSingleResult <WorkItem> GetWorkItem(long itemId, string userId)
        {
            var result   = new ServiceSingleResult <WorkItem>();
            var workItem = GetWorkItemById(itemId);

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

                if (projUserRef == null)
                {
                    result.HandleError(ErrorMessagesDict.AccessDenied);
                }
                else
                {
                    result.TargetObject = workItem;
                }

                return(result);
            }

            result.HandleError(ErrorMessagesDict.NotFoundResource);
            return(result);
        }
Esempio n. 2
0
        public ServiceSingleResult <bool> AddWorkItem(WorkItem item)
        {
            var result = new ServiceSingleResult <bool>();

            if (item != null && item.Issue != null)
            {
                var projUserRef = _accessService.GetAccessByWorkItem(item, item.CreatorId);
                if (projUserRef == null || !Inspector.CanUserUpdateProject(projUserRef))
                {
                    result.HandleError(ErrorMessagesDict.AccessDenied);
                    return(result);
                }

                if (!Inspector.IsValidWorkItemTime(item))
                {
                    result.HandleError(ErrorMessagesDict.WrongEstimatedTimeFormat);
                    return(result);
                }

                _context.WorkItems.Add(item);
                try
                {
                    _context.SaveChanges();
                    result.TargetObject = true;
                }
                catch (Exception exc)
                {
                    result.HandleError(exc.Message);
                }
                return(result);
            }

            result.HandleError(ErrorMessagesDict.NullInstance);
            return(result);
        }
Esempio n. 3
0
        public ServiceSingleResult <Report> GetReport(long reportId, string userId)
        {
            var result = new ServiceSingleResult <Report>();
            var report = GetReportById(reportId);

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

                if (projUserRef == null)
                {
                    result.HandleError(ErrorMessagesDict.AccessDenied);
                }
                else
                {
                    result.TargetObject = report;
                }

                return(result);
            }

            result.HandleError(ErrorMessagesDict.NotFoundResource);
            return(result);
        }
Esempio n. 4
0
        public ServiceSingleResult <bool> DeleteWorkItem(long itemId, string userId)
        {
            var result = new ServiceSingleResult <bool>();
            var item   = GetWorkItemById(itemId);

            if (item != null)
            {
                //check security
                var projUserRef = _accessService.GetAccessByWorkItem(item, userId);
                if (projUserRef == null || !Inspector.CanUserUpdateProject(projUserRef))
                {
                    result.HandleError(ErrorMessagesDict.AccessDenied);
                    return(result);
                }

                _context.WorkItems.Remove(item);
                try
                {
                    _context.SaveChanges();
                    result.TargetObject = true;
                }
                catch (Exception exc)
                {
                    result.HandleError(exc.Message);
                }
                return(result);
            }

            result.HandleError(ErrorMessagesDict.NotFoundResource);
            return(result);
        }
Esempio n. 5
0
        public ServiceSingleResult <bool> AddIssue(Issue issue)
        {
            var result = new ServiceSingleResult <bool>();

            if (issue != null && issue.Project != null)
            {
                //check user access to the project
                var projUserRef = _accessService.GetAccessByIssue(issue, issue.CreatorId);
                if (projUserRef == null || !Inspector.CanUserUpdateProject(projUserRef))
                {
                    result.HandleError(ErrorMessagesDict.AccessDenied);
                    return(result);
                }

                _context.Issues.Add(issue);
                try
                {
                    _context.SaveChanges();
                    result.TargetObject = true;
                }
                catch (Exception exc)
                {
                    result.HandleError(exc.Message);
                }
                return(result);
            }

            result.HandleError(ErrorMessagesDict.NullInstance);
            return(result);
        }
Esempio n. 6
0
        public ServiceSingleResult <bool> AddReport(Report report)
        {
            var result = new ServiceSingleResult <bool>();

            if (report != null && report.Issue != null)
            {
                var projUserRef = _accessService.GetAccessByReport(report, report.ReporterId);
                if (projUserRef == null || !Inspector.CanUserAddReport(projUserRef))
                {
                    result.HandleError(ErrorMessagesDict.AccessDenied);
                    return(result);
                }

                _context.Reports.Add(report);
                try
                {
                    _context.SaveChanges();
                    result.TargetObject = true;
                }
                catch (Exception exc)
                {
                    result.HandleError(exc.Message);
                }

                return(result);
            }

            result.HandleError(ErrorMessagesDict.NullInstance);
            return(result);
        }
Esempio n. 7
0
        public ServiceSingleResult <bool> DeleteReport(long reportId, string userId)
        {
            var result         = new ServiceSingleResult <bool>();
            var reportToDelete = GetReportById(reportId);

            if (reportToDelete != null)
            {
                //check security
                var projUserRef = _accessService.GetAccessByReport(reportToDelete, userId);
                if (projUserRef == null ||
                    !Inspector.CanUserDeleteReport(projUserRef, reportToDelete, userId))
                {
                    result.HandleError(ErrorMessagesDict.AccessDenied);
                    return(result);
                }

                _context.Reports.Remove(reportToDelete);
                try
                {
                    _context.SaveChanges();
                    result.TargetObject = true;
                }
                catch (Exception exc)
                {
                    result.HandleError(exc.Message);
                }
                return(result);
            }

            result.HandleError(ErrorMessagesDict.NotFoundResource);
            return(result);
        }
Esempio n. 8
0
        public ServiceSingleResult <Issue> GetIssue(int trackingNumber, string userId)
        {
            var result = new ServiceSingleResult <Issue>();
            var issue  = _accessService.GetAccessibleIssues(userId)
                         .FirstOrDefault(i => i.IssueTrackingNumber == trackingNumber);

            if (issue != null)
            {
                result.TargetObject = issue;
            }
            else
            {
                result.HandleError(ErrorMessagesDict.AccessDenied);
            }

            return(result);
        }
Esempio n. 9
0
        public ServiceSingleResult <Issue> GetIssue(long issueId, string userId)
        {
            var result = new ServiceSingleResult <Issue>();
            var issue  = _accessService.GetAccessibleIssues(userId)
                         .SingleOrDefault(i => i.Id == issueId);

            if (issue != null)
            {
                result.TargetObject = issue;
            }
            else
            {
                result.HandleError(ErrorMessagesDict.AccessDenied);
            }

            return(result);
        }
Esempio n. 10
0
        public ServiceSingleResult <bool> UpdateWorkItem(WorkItem item, string userId)
        {
            var result = new ServiceSingleResult <bool>();

            if (item != null)
            {
                var itemToUpdate = GetWorkItemById(item.Id);

                if (itemToUpdate != null)
                {
                    //check security
                    var projUserRef = _accessService.GetAccessByWorkItem(itemToUpdate, userId);
                    if (projUserRef == null || !Inspector.CanUserUpdateProject(projUserRef))
                    {
                        result.HandleError(ErrorMessagesDict.AccessDenied);
                        return(result);
                    }

                    if (!Inspector.IsValidWorkItemTime(item))
                    {
                        result.HandleError(ErrorMessagesDict.WrongEstimatedTimeFormat);
                        return(result);
                    }

                    _context.Entry(itemToUpdate).CurrentValues.SetValues(item);
                    try
                    {
                        _context.SaveChanges();
                        result.TargetObject = true;
                    }
                    catch (Exception exc)
                    {
                        result.HandleError(exc.Message);
                    }
                    return(result);
                }

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

            result.HandleError(ErrorMessagesDict.NullInstance);
            return(result);
        }
Esempio n. 11
0
        public ServiceSingleResult <bool> AddProject(Project project)
        {
            var result = new ServiceSingleResult <bool>();

            if (project != null)
            {
                //check permission to create
                int nCreatedProjects = GetProjectsUserCreated(project.CreatorId).Count();
                if (!Inspector.CanUserCreateProject(nCreatedProjects))
                {
                    result.HandleError(ErrorMessagesDict.TooMuchProjectsCreated);
                    return(result);
                }

                //create user-project reference
                project.ProjectUsers.Add(
                    new ProjectUserAccess
                {
                    UserId         = project.CreatorId,
                    ProjectAccess  = ProjectAccess.ProjectCreator,
                    CanGrantAccess = true
                }
                    );

                //add project
                _context.Projects.Add(project);
                try
                {
                    _context.SaveChanges();
                    result.TargetObject = true;
                }
                catch (Exception exc)
                {
                    result.HandleError(exc.Message);
                }
                return(result);
            }

            result.HandleError(ErrorMessagesDict.NullInstance);
            return(result);
        }
Esempio n. 12
0
        public ServiceSingleResult <bool> UpdateIssue(Issue issue, string userId)
        {
            var result = new ServiceSingleResult <bool>();

            if (issue != null)
            {
                var issueToUpdate = _context.Issues
                                    .SingleOrDefault(i => i.Id == issue.Id);

                if (issueToUpdate != null)
                {
                    //check user access to the project
                    var projUserRef = _accessService.GetAccessByIssue(issueToUpdate, userId);
                    if (projUserRef == null || !Inspector.CanUserUpdateProject(projUserRef))
                    {
                        result.HandleError(ErrorMessagesDict.AccessDenied);
                        return(result);
                    }

                    _context.Entry(issueToUpdate).CurrentValues.SetValues(issue);
                    try
                    {
                        _context.SaveChanges();
                        result.TargetObject = true;
                    }
                    catch (Exception exc)
                    {
                        result.HandleError(exc.Message);
                    }
                    return(result);
                }

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

            result.HandleError(ErrorMessagesDict.NullInstance);
            return(result);
        }
Esempio n. 13
0
        public ServiceSingleResult <bool> UpdateReport(Report report, string userId)
        {
            var result = new ServiceSingleResult <bool>();

            if (report != null)
            {
                var reportToUpdate = GetReportById(report.Id);

                if (reportToUpdate != null)
                {
                    //check security
                    var projUserRef = _accessService.GetAccessByReport(reportToUpdate, userId);
                    if (projUserRef == null ||
                        !Inspector.CanUserUpdateReport(projUserRef, reportToUpdate, userId))
                    {
                        result.HandleError(ErrorMessagesDict.AccessDenied);
                        return(result);
                    }

                    _context.Entry(reportToUpdate).CurrentValues.SetValues(report);
                    try
                    {
                        _context.SaveChanges();
                        result.TargetObject = true;
                    }
                    catch (Exception exc)
                    {
                        result.HandleError(exc.Message);
                    }
                    return(result);
                }

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

            result.HandleError(ErrorMessagesDict.NullInstance);
            return(result);
        }
Esempio n. 14
0
        public ServiceSingleResult <Project> GetProject(string projectName, string userId)
        {
            var result  = new ServiceSingleResult <Project>();
            var project = _context.Projects
                          .SingleOrDefault(p => p.Name == projectName);

            if (project == null)
            {
                result.HandleError(ErrorMessagesDict.NotFoundResource);
                return(result);
            }

            //check user access
            if (_accessService.GetAccessByProject(project.Id, userId) != null)
            {
                result.TargetObject = project;
                return(result);
            }

            result.HandleError(ErrorMessagesDict.AccessDenied);
            return(result);
        }
Esempio n. 15
0
        public ServiceSingleResult <bool> UpdateProject(Project project, string userId)
        {
            var result = new ServiceSingleResult <bool>();

            if (project != null)
            {
                var projectToUpdate = _context.Projects
                                      .SingleOrDefault(p => p.Id == project.Id);

                if (projectToUpdate != null)
                {
                    //check permission for editiing project info
                    var projUserRef = _accessService.GetAccessByProject(projectToUpdate.Id, userId);
                    if (projUserRef == null || !Inspector.CanUserUpdateProject(projUserRef))
                    {
                        result.HandleError(ErrorMessagesDict.AccessDenied);
                        return(result);
                    }

                    _context.Entry(projectToUpdate).CurrentValues.SetValues(project);
                    try
                    {
                        _context.SaveChanges();
                        result.TargetObject = true;
                    }
                    catch (Exception exc)
                    {
                        result.HandleError(exc.Message);
                    }
                    return(result);
                }

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

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