- Timestamp:
- 08/30/18 11:32:56 (6 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
-
trunk/HeuristicLab.Services.Hive.DataAccess
- Property svn:mergeinfo changed
-
trunk/HeuristicLab.Services.Hive.DataAccess/3.3/Daos/ProjectPermissionDao.cs
r16116 r16117 26 26 27 27 namespace HeuristicLab.Services.Hive.DataAccess.Daos { 28 public class ResourcePermissionDao : GenericDao<Guid, ResourcePermission> {29 public ResourcePermissionDao(DataContext dataContext) : base(dataContext) { }28 public class ProjectPermissionDao : GenericDao<Guid, ProjectPermission> { 29 public ProjectPermissionDao(DataContext dataContext) : base(dataContext) { } 30 30 31 public override ResourcePermission GetById(Guid id) {31 public override ProjectPermission GetById(Guid id) { 32 32 throw new NotImplementedException(); 33 33 } 34 34 35 public IEnumerable< ResourcePermission> GetByResourceId(Guid id) {36 return GetBy ResourceIdGetByIdQuery(DataContext, id);35 public IEnumerable<ProjectPermission> GetByProjectId(Guid id) { 36 return GetByProjectIdGetByIdQuery(DataContext, id); 37 37 } 38 38 39 public void DeleteByResourceAndGrantedUserId(Guid resourceId, IEnumerable<Guid> grantedUserId) { 40 string paramIds = string.Join(",", grantedUserId.Select(x => string.Format("'{0}'", x))); 39 public bool CheckUserGrantedForProject(Guid projectId, IEnumerable<Guid> userAndGroupIds) { 40 string paramUserAndGroupIds = string.Join(",", userAndGroupIds.ToList().Select(x => string.Format("'{0}'", x))); 41 if(!string.IsNullOrWhiteSpace(paramUserAndGroupIds)) { 42 string queryString = string.Format(CheckUserGrantedForProjectQueryString, projectId, paramUserAndGroupIds); 43 return DataContext.ExecuteQuery<int>(queryString).First() > 0; 44 } 45 return false; 46 } 47 48 public void DeleteByProjectIdAndGrantedUserIds(Guid projectId, IEnumerable<Guid> grantedUserIds) { 49 string paramIds = string.Join(",", grantedUserIds.ToList().Select(x => string.Format("'{0}'", x))); 41 50 if (!string.IsNullOrWhiteSpace(paramIds)) { 42 string query = string.Format(DeleteByGrantedUserQuery, resourceId, paramIds); 51 string query = string.Format(DeleteByProjectIdAndGrantedUserIdsQueryString, projectId, paramIds); 52 DataContext.ExecuteCommand(query); 53 } 54 } 55 56 public void DeleteByProjectIdsAndGrantedUserIds(IEnumerable<Guid> projectIds, IEnumerable<Guid> grantedUserIds) { 57 string paramProjectIds = string.Join(",", projectIds.ToList().Select(x => string.Format("'{0}'", x))); 58 string paramUserIds = string.Join(",", grantedUserIds.ToList().Select(x => string.Format("'{0}'", x))); 59 if (!string.IsNullOrWhiteSpace(paramProjectIds) && !string.IsNullOrWhiteSpace(paramUserIds)) { 60 string query = string.Format(DeleteByProjectIdsAndGrantedUserIdsQueryString, paramProjectIds, paramUserIds); 43 61 DataContext.ExecuteCommand(query); 44 62 } … … 46 64 47 65 #region Compiled queries 48 private static readonly Func<DataContext, Guid, IEnumerable< ResourcePermission>> GetByResourceIdGetByIdQuery =49 CompiledQuery.Compile((DataContext db, Guid resourceId) =>50 from resourcePermission in db.GetTable<ResourcePermission>()51 where resourcePermission.ResourceId == resourceId52 select resourcePermission);66 private static readonly Func<DataContext, Guid, IEnumerable<ProjectPermission>> GetByProjectIdGetByIdQuery = 67 CompiledQuery.Compile((DataContext db, Guid projectId) => 68 from projectPermission in db.GetTable<ProjectPermission>() 69 where projectPermission.ProjectId == projectId 70 select projectPermission); 53 71 #endregion 54 72 55 73 #region String queries 56 private const string DeleteByGrantedUserQuery = 57 @"DELETE FROM [ResourcePermission] 58 WHERE ResourceId = '{0}' 59 AND GrantedUserId IN ({1});"; 74 private const string DeleteByProjectIdAndGrantedUserIdsQueryString = @" 75 DELETE FROM [ProjectPermission] 76 WHERE ProjectId = '{0}' 77 AND GrantedUserId IN ({1}); 78 "; 79 private const string DeleteByProjectIdsAndGrantedUserIdsQueryString = @" 80 DELETE FROM [ProjectPermission] 81 WHERE ProjectId IN ({0}) 82 AND GrantedUserId IN ({1}); 83 "; 84 private const string CheckUserGrantedForProjectQueryString = @" 85 SELECT COUNT(pp.ProjectId) 86 FROM [ProjectPermission] pp 87 WHERE pp.ProjectId = '{0}' 88 AND pp.GrantedUserId IN ({1}) 89 "; 90 private const string GetGrantedProjectsForUserQueryString = @" 91 SELECT DISTINCT p.* 92 FROM [ProjectPermission] pp, [Project] p 93 WHERE pp.GrantedUserId IN ({0}) 94 AND pp.ProjectId = p.ProjectId 95 "; 60 96 #endregion 61 97 }
Note: See TracChangeset
for help on using the changeset viewer.