// container.Register<Operation , string>(o => o.Name).When(GetWhenCriteria).Match(GetMatchingCriteria); public RowAuthPolicy(Expression <Func <TEntity, TProperty> > selector, IRowAuthPoliciesContainer parent) { this._selector = selector; this._parent = parent; _filterValueGetter = () => default(TProperty); EntityType = typeof(TEntity); }
public void Can_Fetch_Only_The_Rows_The_User_Is_Allowed_By_Row_Level_Security() { // TODO: Setup test? using (var context = new AppDbContext("SimpleMembership")) { IUnitOfWorkAsync unitOfWork = new UnitOfWork(context, new RowAuthPoliciesContainer()); IRowAuthPoliciesContainer container = RowAuthPoliciesContainer.ConfigureRowAuthPolicies(); container.Register <Operation, string>(o => o.Name).When(GetWhenCriteria).Match(GetMatchingCriteria); IRepositoryAsync <Operation> operationRepository = new Repository <Operation>(context, unitOfWork, container); var coperationVanilla = operationRepository.Find(1); var coperation = operationRepository.FindWithRowLevelSecurity(1); var coperations = operationRepository.QueryableWithRowLevelSecurity().ToList(); Assert.IsTrue(coperations.Count > 0); Assert.IsNotNull(coperations); TestContext.WriteLine("Operation found: {0}", coperation.Name); TestContext.WriteLine("Operations found: {0}", coperations.Count); // TODO: idempotent teardown } }
public Repository( DbContext context , IUnitOfWorkAsync unitOfWork , IRowAuthPoliciesContainer rowAuthPoliciesContainer ) { UnitOfWork = unitOfWork; Context = context; Set = context.Set <TEntity>(); _container = rowAuthPoliciesContainer; _innerSet = context.Set <TEntity>(); authFilter = BuildWhereExpression <TEntity>(); _innerSet = _innerSet.Where(authFilter); }
public void Insert_Several_Operations() { // TODO: idempotent teardown // TODO: Setup test? using (var context = new AppDbContext()) { IUnitOfWorkAsync unitOfWork = new UnitOfWork(context, new RowAuthPoliciesContainer()); IRowAuthPoliciesContainer container = RowAuthPoliciesContainer.ConfigureRowAuthPolicies(); container.Register <Operation, string>(o => o.Name).When(GetWhenCriteria).Match(GetMatchingCriteria); IRepositoryAsync <Operation> operationRepository = new Repository <Operation>(context, unitOfWork, container); var operations = new[] { new Operation { Name = "Operation1Test1", Description = "Operation1Test1", TrackingState = TrackingState.Added }, new Operation { Name = "Operation2Test2", Description = "Operation2Test2", TrackingState = TrackingState.Added }, }; foreach (var operation in operations) { try { operationRepository.Insert(operation); unitOfWork.SaveChanges(); } catch (DbEntityValidationException ex) { ReportError(ex); } catch (Exception ex) { Debug.WriteLine(ex.Message); TestContext.WriteLine(ex.Message); } } var insertedOperation = operationRepository.Query(x => x.Name == "One").Select().FirstOrDefault(); Assert.IsTrue(insertedOperation?.Name == "One"); var insertedOperation2 = operationRepository.Query(x => x.Name == "Two").Select().FirstOrDefault(); Assert.IsTrue(insertedOperation2?.Name == "Two"); } }
public FakeRepository(DbContext context, IUnitOfWorkAsync unitOfWork, IRowAuthPoliciesContainer rowAuthPoliciesContainer) : base(context, unitOfWork, rowAuthPoliciesContainer) { }
public UnitOfWork(DbContext context, IRowAuthPoliciesContainer rowAuthPoliciesContainer) { _context = context; _rowAuthPoliciesContainer = rowAuthPoliciesContainer; Repositories = new Dictionary <string, dynamic>(); }