Пример #1
0
        public void InitializeResolver_Flat()
        {
            Random random = new Random();
            CreateScopeResolverInformation inputModel = new CreateScopeResolverInformation();
            Int32 propertyAmount = random.Next(3, 30);

            for (int i = 0; i < propertyAmount; i++)
            {
                inputModel.PropertiesAndValues.Add($"property-{i + 1}", $"{random.Next()}");
            }

            Mock <ISerializer> serializerMock = new Mock <ISerializer>(MockBehavior.Strict);

            DHCPv6ScopeResolverManager scopeManager = new DHCPv6ScopeResolverManager(serializerMock.Object, Mock.Of <IDeviceService>(MockBehavior.Strict), Mock.Of <ILogger <DHCPv6ScopeResolverManager> >());

            Mock <IScopeResolver <DHCPv6Packet, IPv6Address> > resolverMock = new Mock <IScopeResolver <DHCPv6Packet, IPv6Address> >(MockBehavior.Strict);

            resolverMock.Setup(x => x.ApplyValues(inputModel.PropertiesAndValues, serializerMock.Object)).Verifiable();

            String typeName = $"typname-{random.Next()}";

            scopeManager.AddOrUpdateScopeResolver(typeName, () => resolverMock.Object);
            inputModel.Typename = typeName;

            IScopeResolver <DHCPv6Packet, IPv6Address> actual = scopeManager.InitializeResolver(inputModel);

            Assert.Equal(resolverMock.Object, actual);

            resolverMock.Verify();
        }
Пример #2
0
        public IUnitOfWorkCompleteHandle Begin(UnitOfWorkOptions options)
        {
            _childScope = _scopeResolver.BeginScope();

            options.FillDefaultsForNonProvidedOptions(_defaultOptions);

            IUnitOfWork outerUow = _currentUnitOfWorkProvider.Current;

            if (options.Scope == TransactionScopeOption.Required && outerUow != null)
            {
                return(new InnerUnitOfWorkCompleteHandle());
            }

            var uow = _childScope.Resolve <IUnitOfWork>();

            uow.Completed += (sender, args) => { _currentUnitOfWorkProvider.Current = null; };

            uow.Failed += (sender, args) => { _currentUnitOfWorkProvider.Current = null; };

            uow.Disposed += (sender, args) => { _childScope.Dispose(); };

            //Inherit filters from outer UOW
            if (outerUow != null)
            {
                options.FillOuterUowFiltersForNonProvidedOptions(outerUow.Filters.ToList());
            }

            uow.Begin(options);

            _currentUnitOfWorkProvider.Current = uow;

            return(uow);
        }
Пример #3
0
 /// <summary>
 ///     Adds a resolver.  The order is the order in which the resolvers are tried.  The lowest order number
 ///     is tried first
 /// </summary>
 public void RegisterResolver(IScopeResolver resolver, int order)
 {
     resolvers.TryAdd(new ResolverListEntry {
         Resolver = resolver,
         Order    = order
     });
 }
        public StoveNHibernateInterceptor(IScopeResolver scopeResolver)
        {
            IScopeResolver innerResolver = scopeResolver;

            _stoveSession =
                new Lazy <IStoveSession>(
                    () => innerResolver.IsRegistered(typeof(IStoveSession))
                        ? innerResolver.Resolve <IStoveSession>()
                        : NullStoveSession.Instance,
                    true
                    );

            _guidGenerator =
                new Lazy <IGuidGenerator>(
                    () => innerResolver.IsRegistered(typeof(IGuidGenerator))
                        ? innerResolver.Resolve <IGuidGenerator>()
                        : SequentialGuidGenerator.Instance,
                    true
                    );

            _eventBus =
                new Lazy <IEventBus>(
                    () => innerResolver.IsRegistered(typeof(IEventBus))
                        ? innerResolver.Resolve <IEventBus>()
                        : NullEventBus.Instance,
                    true
                    );

            _commandContextAccessor =
                new Lazy <IStoveCommandContextAccessor>(
                    () => innerResolver.Resolve <IStoveCommandContextAccessor>(),
                    true);
        }
Пример #5
0
        private async Task RunAsync(
            Label label,
            IScopeResolver scopeResolver,
            Func <IResolver, CancellationToken, Task> taskFactory,
            CancellationToken cancellationToken)
        {
            using (scopeResolver)
            {
                var taskId    = Guid.NewGuid().ToString("N");
                var stopwatch = Stopwatch.StartNew();

                _log.Verbose($"Starting task '{label}' ({taskId})");

                try
                {
                    await taskFactory(scopeResolver, cancellationToken).ConfigureAwait(false);

                    _log.Verbose($"Task '{label}' ({taskId}) completed after {stopwatch.Elapsed.TotalSeconds:0.###} seconds");
                }
                catch (Exception e)
                {
                    _log.Error(e, $"Task '{label}' ({taskId}) failed after {stopwatch.Elapsed.TotalSeconds:0.###} seconds with exception '{e.GetType().Name}': {e.Message}");
                }
            }
        }
        public StoveNHibernateInterceptor(IScopeResolver scopeResolver)
        {
            _scopeResolver = scopeResolver;

            _stoveSession =
                new Lazy <IStoveSession>(
                    () => _scopeResolver.IsRegistered(typeof(IStoveSession))
                        ? _scopeResolver.Resolve <IStoveSession>()
                        : NullStoveSession.Instance,
                    isThreadSafe: true
                    );
            _guidGenerator =
                new Lazy <IGuidGenerator>(
                    () => _scopeResolver.IsRegistered(typeof(IGuidGenerator))
                        ? _scopeResolver.Resolve <IGuidGenerator>()
                        : SequentialGuidGenerator.Instance,
                    isThreadSafe: true
                    );

            _eventBus =
                new Lazy <IEventBus>(
                    () => _scopeResolver.IsRegistered(typeof(IEventBus))
                        ? _scopeResolver.Resolve <IEventBus>()
                        : NullEventBus.Instance,
                    isThreadSafe: true
                    );
        }
Пример #7
0
		public ScopeContext(string contextPath, IClientRegistry clientRegistry, IScopeResolver scopeResolver, IServiceInvoker serviceInvoker, IPersistenceStore persistanceStore) {
			_contextPath = contextPath;
			_clientRegistry = clientRegistry;
			_scopeResolver = scopeResolver;
			_persistanceStore = persistanceStore;
			_serviceInvoker = serviceInvoker;
		}
Пример #8
0
 public StoveDbContextMigration(IScopeResolver resolver,
                                IStoveMigrationConfiguration configuration,
                                IEnumerable <IStoveMigration> stoveMigrations)
 {
     _resolver        = resolver;
     _configuration   = configuration;
     _stoveMigrations = stoveMigrations;
 }
Пример #9
0
 public ScopeContext(string contextPath, IClientRegistry clientRegistry, IScopeResolver scopeResolver, IServiceInvoker serviceInvoker, IPersistenceStore persistanceStore)
 {
     _contextPath      = contextPath;
     _clientRegistry   = clientRegistry;
     _scopeResolver    = scopeResolver;
     _persistanceStore = persistanceStore;
     _serviceInvoker   = serviceInvoker;
 }
Пример #10
0
 public UnitOfWorkManager(
     IScopeResolver scopedResolver,
     ICurrentUnitOfWorkProvider currentUnitOfWorkProvider,
     IUnitOfWorkDefaultOptions defaultOptions)
 {
     _scopeResolver             = scopedResolver;
     _currentUnitOfWorkProvider = currentUnitOfWorkProvider;
     _defaultOptions            = defaultOptions;
 }
Пример #11
0
 public ScopeContext(string contextPath, IClientRegistry clientRegistry, IScopeResolver scopeResolver, IServiceInvoker serviceInvoker, IPersistenceStore persistanceStore)
 {
     this._contextPath      = string.Empty;
     this._contextPath      = contextPath;
     this._clientRegistry   = clientRegistry;
     this._scopeResolver    = scopeResolver;
     this._persistanceStore = persistanceStore;
     this._serviceInvoker   = serviceInvoker;
 }
Пример #12
0
        public virtual Boolean AddResolver(IScopeResolver <TPacket, TAddress> resolver)
        {
            if (InnerResolvers.Contains(resolver) == true)
            {
                return(false);
            }

            InnerResolvers.Add(resolver);
            return(true);
        }
Пример #13
0
        static void Main(string[] args)
        {
            ScopeManager         scopeManager         = new ScopeManager();
            ProjectScopeResolver projectScopeResolver = new ProjectScopeResolver(new HostingInformation(1, 1, "Magnus"));

            scopeManager.AddResolver(projectScopeResolver);
            IScopeResolver scopeResolver = scopeManager.GetResolver(ParameterScopeTypes.Project);

            // string scopeName = scopeResolver.Resolve();
            Console.WriteLine("Hello World!");
        }
Пример #14
0
        public IScopeResolver <TPacket, TAddress> InitializeResolver(CreateScopeResolverInformation resolverCreateModel)
        {
            IScopeResolver <TPacket, TAddress> resolver = GetResolverFromCreateModel(resolverCreateModel, true);

            if (resolver is IScopeResolverContainingOtherResolvers <TPacket, TAddress> == true)
            {
                var resolverContainingOthers = (IScopeResolverContainingOtherResolvers <TPacket, TAddress>)resolver;
                IEnumerable <CreateScopeResolverInformation> innenrResolvers = resolverContainingOthers.ExtractResolverCreateModels(resolverCreateModel, _serializer);
                GenerateResolverTree(innenrResolvers, resolverContainingOthers);
            }

            return(resolver);
        }
 public AuthorizationRequestFactory(
     IClientIdValidator clientIdValidator,
     IRedirectUriResolver redirectUriValidator,
     IScopeResolver scopeValidator,
     IEnumerable <IAuthorizationRequestValidator> validators,
     ProtocolErrorProvider errorProvider)
 {
     _clientIdValidator    = clientIdValidator;
     _redirectUrlValidator = redirectUriValidator;
     _scopeValidator       = scopeValidator;
     _validators           = validators;
     _errorProvider        = errorProvider;
 }
Пример #16
0
        public IEnumerable <ScopeResolverDescription> GetRegisterResolverDescription()
        {
            List <ScopeResolverDescription> result = new List <ScopeResolverDescription>();

            foreach (var item in _resolverMapper)
            {
                IScopeResolver <TPacket, TAddress> resolver            = item.Value();
                ScopeResolverDescription           resolverDescription = resolver.GetDescription();

                result.Add(resolverDescription);
            }

            return(result);
        }
        public void Migrate <TDbContext, TConfiguration>(string nameOrConnectionString, Assembly migrationAssembly, Action <string> logger)
            where TDbContext : DbContext
            where TConfiguration : DbMigrationsConfiguration <TDbContext>, new()
        {
            logger($"MigrationStrategy: DbContext starting for {typeof(TDbContext).GetTypeInfo().Name}...");

            using (IScopeResolver scope = _resolver.BeginScope())
            {
                var dbInitializer = scope.Resolve <StoveDbContextMigration <TDbContext> >();
                dbInitializer.Migrate(logger);
            }

            logger($"MigrationStrategy: DbContext finished succesfully for {typeof(TDbContext).GetTypeInfo().Name}.");
        }
Пример #18
0
        protected void TestDescription(IScopeResolver <DHCPv6Packet, IPv6Address> resolver, String expectedName)
        {
            ScopeResolverDescription description = resolver.GetDescription();

            Assert.NotNull(description);

            Assert.Equal(expectedName, description.TypeName);

            Assert.NotNull(description.Properties);
            Assert.Single(description.Properties);

            ScopeResolverPropertyDescription propertyDescription = description.Properties.First();

            Assert.Equal("InnerResolvers", propertyDescription.PropertyName);
            Assert.Equal(ScopeResolverPropertyValueTypes.Resolvers, propertyDescription.PropertyValueType);
        }
Пример #19
0
        public void Migrate <TDbContext, TConfiguration>(string nameOrConnectionString, Assembly migrationAssembly, Action <string> logger)
            where TDbContext : DbContext
            where TConfiguration : DbMigrationsConfiguration <TDbContext>, new()
        {
            logger($"MigrationStrategy: DbContext starting for {typeof(TDbContext).GetTypeInfo().Name}...");

            using (IScopeResolver scope = _resolver.BeginScope())
            {
                var dbContext     = scope.Resolve <TDbContext>(new { nameOrConnectionString });
                var dbInitializer = new MigrateDatabaseToLatestVersion <TDbContext, TConfiguration>(true, new TConfiguration());

                dbInitializer.InitializeDatabase(dbContext);
            }

            logger($"MigrationStrategy: DbContext finished succesfully for {typeof(TDbContext).GetTypeInfo().Name}.");
        }
Пример #20
0
        /// <summary>
        ///     Nolockings the specified queryable.
        /// </summary>
        /// <typeparam name="TEntity">The type of the entity.</typeparam>
        /// <typeparam name="TPrimaryKey">The type of the primary key.</typeparam>
        /// <typeparam name="TResult">The type of the result.</typeparam>
        /// <param name="repository">The repository.</param>
        /// <param name="queryable">The queryable.</param>
        /// <returns></returns>
        public static TResult Nolocking <TEntity, TPrimaryKey, TResult>(this IRepository <TEntity, TPrimaryKey> repository, Func <IQueryable <TEntity>, TResult> queryable) where TEntity : class, IEntity <TPrimaryKey>
        {
            Check.NotNull(queryable, nameof(queryable));

            TResult result;

            using (IScopeResolver scopeResolver = repository.As <IStoveRepositoryBaseWithResolver>().ScopeResolver.BeginScope())
            {
                using (scopeResolver.Resolve <WithNoLockInterceptor>().UseNolocking())
                {
                    result = queryable(repository.GetAll());
                }
            }

            return(result);
        }
Пример #21
0
 public TokenRequestFactory(
     IClientIdValidator clientIdValidator,
     IRedirectUriResolver redirectUriValidator,
     IScopeResolver scopeResolver,
     IEnumerable <ITokenRequestValidator> validators,
     ITokenManager tokenManager,
     ITimeStampManager timeStampManager,
     ProtocolErrorProvider errorProvider)
 {
     _clientIdValidator    = clientIdValidator;
     _redirectUriValidator = redirectUriValidator;
     _scopeResolver        = scopeResolver;
     _validators           = validators;
     _tokenManager         = tokenManager;
     _errorProvider        = errorProvider;
     _timeStampManager     = timeStampManager;
 }
Пример #22
0
        protected void HandleScopeAdded(TScope scope, ScopeCreateInstruction <TAddressProperties, TAddress, TScopeProperties, TScopeProperty, TOption, TValueType> instruction)
        {
            if (instruction.ParentId.HasValue == true)
            {
                TScope parent = _scopes[instruction.ParentId.Value];
                scope.SetParent(parent);
            }
            else
            {
                _firstLevelScopes.Add(scope);
            }

            IScopeResolver <TPacket, TAddress> resolver = _resolverManager.InitializeResolver(instruction.ResolverInformation);

            scope.SetResolver(resolver);

            _scopes.Add(scope.Id, scope);
        }
Пример #23
0
        private IScopeResolver <TPacket, TAddress> GetResolverFromCreateModel(CreateScopeResolverInformation resolverCreateModel, Boolean applyValues)
        {
            String normalizeNamed = GetNormalizedMapperName(resolverCreateModel.Typename);

            if (_resolverMapper.ContainsKey(normalizeNamed) == false)
            {
                throw new Exception();
            }

            IScopeResolver <TPacket, TAddress> resolver = _resolverMapper[normalizeNamed].Invoke();

            if (applyValues == true)
            {
                resolver.ApplyValues(resolverCreateModel.PropertiesAndValues, _serializer);
            }

            return(resolver);
        }
        public RegistrationCompletedEventTests()
        {
            SampleClass sampleClassInstance = null;

            Building(builder =>
            {
                builder.RegisterServices(r => r.RegisterType <SampleClass>());

                builder.RegisterServices(r => r.RegistrationCompleted += (sender, args) =>
                {
                    var scopeResolver = args.Resolver.Resolve <IScopeResolver>();

                    using (IScopeResolver scope = scopeResolver.BeginScope())
                    {
                        sampleClassInstance = scope.Resolve <SampleClass>();
                    }
                });
            });

            sampleClassInstance.DisposeCount.Should().Be(1);
        }
Пример #25
0
        public bool IsResolverInformationValid(CreateScopeResolverInformation resolverCreateModel)
        {
            if (resolverCreateModel == null || String.IsNullOrEmpty(resolverCreateModel.Typename) == true)
            {
                return(false);
            }

            String normalizeNamed = GetNormalizedMapperName(resolverCreateModel.Typename);

            if (_resolverMapper.ContainsKey(normalizeNamed) == false)
            {
                return(false);
            }

            IScopeResolver <TPacket, TAddress> resolver = _resolverMapper[normalizeNamed].Invoke();

            Boolean result = resolver.ArePropertiesAndValuesValid(resolverCreateModel.PropertiesAndValues, _serializer);

            if (result == true && resolver is IScopeResolverContainingOtherResolvers <TPacket, TAddress> resolvers)
            {
                var resolverContainingOthers = resolvers;
                IEnumerable <CreateScopeResolverInformation> innenrResolvers = resolverContainingOthers.ExtractResolverCreateModels(resolverCreateModel, _serializer);

                foreach (CreateScopeResolverInformation item in innenrResolvers)
                {
                    Boolean childResult = IsResolverInformationValid(item);
                    if (childResult == false)
                    {
                        result = false;
                        break;
                    }
                }
            }

            return(result);
        }
Пример #26
0
 internal void SetResolver(IScopeResolver <TPacket, TAddress> resolver) => Resolver = resolver;
Пример #27
0
 public CreateTable(string tableName, IScopeResolver scopeResolver)
 {
     _tableName = tableName;
     _scopeResolver = scopeResolver;
 }
 public SupportedScopeTypesResolver(IScopeResolver <ConfigurationTextPack> configTextPackScopeResolver)
 {
     _configTextPackScopeResolver = configTextPackScopeResolver;
 }
Пример #29
0
 public EfActiveTransactionProvider(IScopeResolver scopeResolver)
 {
     _scopeResolver = scopeResolver;
 }
Пример #30
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="IocScopedResolver" /> class.
 /// </summary>
 /// <param name="scope">The scope.</param>
 public IocScopedResolver(IScopeResolver scope)
 {
     _scope = scope;
 }
Пример #31
0
 /// <summary>
 ///     Constructor.
 /// </summary>
 public StoveMemoryCacheManager(IScopeResolver scopeResolver, ICachingConfiguration configuration)
     : base(scopeResolver.BeginScope(), configuration)
 {
 }
Пример #32
0
 public DbContextMigrationStrategy(IScopeResolver resolver)
 {
     _resolver = resolver;
 }
Пример #33
0
		/// <summary>
		/// Constructs a new ScopeMiddleware
		/// </summary>
		/// <param name="next">OwinMiddleware</param>
		/// <param name="resolver">IScopeResolver</param>
		public ScopeMiddleware(OwinMiddleware next, IScopeResolver resolver)
			: base(next)
		{
			this._resolver = resolver;
		}