Changeset 15530 for branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/AssignedProjectResourceDao.cs
- Timestamp:
- 12/15/17 17:51:28 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/AssignedProjectResourceDao.cs
r15411 r15530 45 45 } 46 46 47 public bool CheckProjectGrantedForResources(Guid projectId, IEnumerable<Guid> resourceIds) { 48 string paramResourceIds = string.Join(",", resourceIds.Select(x => string.Format("'{0}'", x))); 49 if (!string.IsNullOrWhiteSpace(paramResourceIds)) { 50 string queryString = string.Format(CheckProjectGrantedForResourcesQueryString, projectId, paramResourceIds); 51 return DataContext.ExecuteQuery<int>(queryString).Count() == 0; 52 } 53 return false; 54 } 55 56 public IEnumerable<Resource> GetAllGrantedResourcesByProjectId(Guid projectId) { 57 return DataContext.ExecuteQuery<Resource>(GetAllGrantedResourcesByProjectIdQueryString, projectId); 58 } 59 60 public IEnumerable<Guid> GetAllGrantedResourceIdsByProjectId(Guid projectId) { 61 return DataContext.ExecuteQuery<Guid>(GetAllGrantedResourceIdsByProjectIdQueryString, projectId); 62 } 63 47 64 #region Compiled queries 48 65 private static readonly Func<DataContext, Guid, IEnumerable<AssignedProjectResource>> GetByProjectIdGetByIdQuery = … … 58 75 WHERE ProjectId = '{0}' 59 76 AND ResourceId IN ({1});"; 77 private const string CheckProjectGrantedForResourcesQueryString = @" 78 WITH rtree AS 79 ( 80 SELECT ResourceId, ParentResourceId 81 FROM [Resource] 82 UNION ALL 83 SELECT rt.ResourceId, r.ParentResourceId 84 FROM [Resource] r 85 JOIN rtree rt ON rt.ParentResourceId = r.ResourceId 86 ) 87 SELECT r.ResourceId 88 FROM [Resource] r 89 WHERE r.ResourceId IN ({1}) 90 EXCEPT 91 ( 92 SELECT rtree.ResourceId 93 FROM rtree, [AssignedProjectResource] apr 94 WHERE rtree.ParentResourceId = apr.ResourceId 95 AND apr.ProjectId = {0} 96 UNION 97 SELECT apr.ResourceId 98 FROM [AssignedProjectResource] apr 99 WHERE apr.ProjectId = {0} 100 ) 101 "; 102 private const string GetAllGrantedResourcesByProjectIdQueryString = @" 103 WITH rtree AS 104 ( 105 SELECT ResourceId, ParentResourceId 106 FROM [Resource] 107 UNION ALL 108 SELECT rt.ResourceId, r.ParentResourceId 109 FROM [Resource] r 110 JOIN rtree rt ON rt.ParentResourceId = r.ResourceId 111 ) 112 SELECT res.* 113 FROM rtree, [AssignedProjectResource] apr, [Resource] res 114 WHERE rtree.ParentResourceId = apr.ResourceId 115 AND rtree.ResourceId = res.ResourceId 116 AND apr.ProjectId = {0} 117 UNION 118 SELECT res.* 119 FROM [AssignedProjectResource] apr, [Resource] res 120 WHERE apr.ResourceId = res.ResourceId 121 AND apr.ProjectId = {0} 122 "; 123 private const string GetAllGrantedResourceIdsByProjectIdQueryString = @" 124 WITH rtree AS 125 ( 126 SELECT ResourceId, ParentResourceId 127 FROM [Resource] 128 UNION ALL 129 SELECT rt.ResourceId, r.ParentResourceId 130 FROM [Resource] r 131 JOIN rtree rt ON rt.ParentResourceId = r.ResourceId 132 ) 133 SELECT rtree.ResourceId 134 FROM rtree, [AssignedProjectResource] apr 135 WHERE rtree.ParentResourceId = apr.ResourceId 136 AND apr.ProjectId = {0} 137 UNION 138 SELECT apr.ResourceId 139 FROM [AssignedProjectResource] apr 140 WHERE apr.ProjectId = {0} 141 "; 60 142 #endregion 61 143 }
Note: See TracChangeset
for help on using the changeset viewer.