Beispiel #1
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureServices((hostContext, services) =>
        {
            var queueManagerFactory = new QueueManagerFactory();
            var queueManager        = queueManagerFactory.Make();
            services.AddSingleton(typeof(IQueueManager), queueManager);

            var connectionString  = hostContext.Configuration["connectionString"];
            var contextFactory    = new LoggerServiceDBContextFactory(connectionString);
            var repositoryFactory = new RepositoryFactory();
            repositoryFactory.Add(typeof(ILogRepository), () => new LogRepository(contextFactory));
            services.AddSingleton(typeof(IRepositoryFactory), repositoryFactory);

            var processorContext = new MessageProcessorContext
            {
                QueueManager      = queueManager,
                RepositoryFactory = repositoryFactory
            };
            var processorFactory = new MessageProcessorFactory(processorContext);
            processorFactory.AddFromAssembly(Assembly.GetExecutingAssembly());
            services.AddSingleton(typeof(IMessageProcessorFactory), processorFactory);

            services.AddHostedService <LoggerWorker>();
        });
Beispiel #2
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .ConfigureServices((hostContext, services) =>
        {
            var queueManagerFactory = new QueueManagerFactory();
            var queueManager        = queueManagerFactory.Make();
            services.AddSingleton(typeof(IQueueManager), queueManager);

            AuthSettings.RootUserPictures = hostContext.Configuration["rootUserPictures"];

            var connectionString  = hostContext.Configuration["connectionString"];
            var contextFactory    = new AuthServiceDBContextFactory(connectionString);
            var repositoryFactory = new RepositoryFactory();
            repositoryFactory.Add(typeof(IUserRepository), () => new UserRepository(contextFactory));
            repositoryFactory.Add(typeof(ITokenRepository), () => new TokenRepository(contextFactory));
            services.AddSingleton(typeof(IRepositoryFactory), repositoryFactory);

            var messageLogger = new MessageLogger(queueManager, AuthSettings.Host);
            services.AddSingleton(typeof(IMessageLogger), messageLogger);

            var processorContext = new MessageProcessorContext
            {
                QueueManager      = queueManager,
                RepositoryFactory = repositoryFactory,
                Logger            = messageLogger
            };
            var processorFactory = new MessageProcessorFactory(processorContext);
            processorFactory.AddFromAssembly(Assembly.GetExecutingAssembly());
            services.AddSingleton(typeof(IMessageProcessorFactory), processorFactory);

            var obsoleteUserPictureRemover = new ObsoleteUserPictureRemover(repositoryFactory);
            obsoleteUserPictureRemover.Remove();

            services.AddHostedService <AuthWorker>();
        });
Beispiel #3
0
        private Task DespatchMessageAsync(Message message)
        {
            var messageType             = Type.GetType(message.UserProperties["EnclosedType"] as string);
            var messageProcessorInvoker = messageProcessorInvokerProvider.GetMessageProcessorInvoker(messageType);

            var messageProcessorImpl    = serviceProvider.GetService(messageProcessorInvoker.MessageProcessorInterfaceType);
            var messageToBeProcessed    = messageSerializer.Deserialize(message.Body, messageType);
            var messageProcessorContext = MessageProcessorContext.Create(message);

            return(messageProcessorInvoker.Invoke(messageProcessorImpl, messageToBeProcessed, messageProcessorContext));
        }
 public Task Invoke(object messageProcessor, object message, MessageProcessorContext messageProcessorContext)
 {
     return(processMethod(messageProcessor, message, messageProcessorContext));
 }