public Article ValidateEntity(Article entity, DeletedEntityPolicy policy) { if (entity.Deleted) { switch (policy) { case DeletedEntityPolicy.INACCESSIBLE: throw new EntityDeletedException(); case DeletedEntityPolicy.OWNER: if (entity.UserId != _currentUserService.UserId) { throw new EntityDeletedException(); } break; case DeletedEntityPolicy.RESTRICTED: entity.User = null; entity.UserId = 0; break; case DeletedEntityPolicy.PUBLIC: default: break; } } return(entity); }
public User ValidateEntity(User entity, DeletedEntityPolicy policy) { if (entity.Deleted) { switch (policy) { case DeletedEntityPolicy.INACCESSIBLE: throw new EntityDeletedException(); case DeletedEntityPolicy.OWNER: if (entity.Id != _currentUserService.UserId) { throw new EntityDeletedException(); } break; case DeletedEntityPolicy.RESTRICTED: entity.UserName = null; entity.FirstName = null; entity.LastName = null; entity.ProfileImage = null; break; case DeletedEntityPolicy.PUBLIC: default: break; } } return(entity); }
public Board ValidateEntity(Board entity, DeletedEntityPolicy policy) { if (entity.Deleted) { switch (policy) { case DeletedEntityPolicy.INACCESSIBLE: throw new EntityDeletedException(); case DeletedEntityPolicy.OWNER: if (!entity.Moderators.Any(m => m.UserId == _currentUserService.UserId)) { throw new EntityDeletedException(); } break; case DeletedEntityPolicy.RESTRICTED: entity.Creator = null; entity.Moderators = new List <Domain.Entities.JoinEntities.BoardUserModerator>(); entity.Subscribers = new List <Domain.Entities.JoinEntities.BoardUserSubscriber>(); break; case DeletedEntityPolicy.PUBLIC: default: break; } } return(entity); }
public IQueryable <User> ValidateEntityQuerable(IQueryable <User> entities, DeletedEntityPolicy policy) { Func <User, User> policySelector = entity => { if (entity.Deleted) { switch (policy) { case DeletedEntityPolicy.INACCESSIBLE: return(null); case DeletedEntityPolicy.OWNER: if (entity.Id != _currentUserService.UserId) { return(null); } break; case DeletedEntityPolicy.RESTRICTED: entity.UserName = null; entity.FirstName = null; entity.LastName = null; entity.ProfileImage = null; break; case DeletedEntityPolicy.PUBLIC: default: break; } } return(entity); }; // TODO: not effiecient to use where and convert to queryable IQueryable <User> validatedEntities = entities.Select(policySelector).Where(entity => entity != null).AsQueryable(); return(validatedEntities); }
public IQueryable <Board> ValidateEntityQuerable(IQueryable <Board> entities, DeletedEntityPolicy policy) { Func <Board, Board> policySelector = entity => { if (entity.Deleted) { switch (policy) { case DeletedEntityPolicy.INACCESSIBLE: return(null); case DeletedEntityPolicy.OWNER: if (!entity.Moderators.Any(m => m.UserId == _currentUserService.UserId)) { return(null); } break; case DeletedEntityPolicy.RESTRICTED: entity.Creator = null; entity.Moderators = new List <Domain.Entities.JoinEntities.BoardUserModerator>(); entity.Subscribers = new List <Domain.Entities.JoinEntities.BoardUserSubscriber>(); break; case DeletedEntityPolicy.PUBLIC: default: break; } } return(entity); }; // TODO: not effiecient to use where and convert to queryable IQueryable <Board> validatedEntities = entities.Select(policySelector).Where(entity => entity != null).AsQueryable(); return(validatedEntities); }