Esempio n. 1
0
        /// <summary>
        /// Construct a new <see cref="CachingEntityMemberRequestFactory"/>.
        /// </summary>
        /// <param name="factory">
        /// The inner <see cref="IEntityMemberRequestFactory"/> whose results are cached.
        /// This cannot be null.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// No argument can be null.
        /// </exception>
        public CachingEntityMemberRequestFactory(IEntityMemberRequestFactory factory)
        {
            if (factory == null)
            {
                throw new ArgumentNullException("factory");
            }

            Factory           = factory;
            Cache             = CacheFactory.CreateSimpleCache <long, EntityMemberRequest>("Entity Member Request");
            _cacheInvalidator = new EntityMemberRequestCacheInvalidator(Cache);
            CacheInvalidator  = _cacheInvalidator;
        }
        /// <summary>
        /// Create a new <see cref="SecuresFlagEntityAccessControlChecker"/> using
        /// the given <paramref name="checker"/>.
        /// </summary>
        /// <param name="checker">
        /// The <see cref="IEntityAccessControlChecker"/> that checks access
        /// to specific entities. This cannot be null.
        /// </param>
        /// <param name="entityMemberRequestFactory">
        /// The <see cref="IEntityMemberRequestFactory"/> that generates entity member requests
        /// to determine which related entities to check security on. This cannot be null.
        /// </param>
        /// <param name="typeRepository">
        /// A <see cref="IEntityTypeRepository"/>. This cannot be null.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// No argument can be null.
        /// </exception>
        internal SecuresFlagEntityAccessControlChecker(IEntityAccessControlChecker checker,
                                                       IEntityMemberRequestFactory entityMemberRequestFactory, IEntityTypeRepository typeRepository)
        {
            if (checker == null)
            {
                throw new ArgumentNullException(nameof(checker));
            }
            if (typeRepository == null)
            {
                throw new ArgumentNullException(nameof(typeRepository));
            }
            if (entityMemberRequestFactory == null)
            {
                throw new ArgumentNullException(nameof(entityMemberRequestFactory));
            }

            Checker                    = checker;
            TypeRepository             = typeRepository;
            EntityMemberRequestFactory = entityMemberRequestFactory;
        }