Exemplo n.º 1
0
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);

            var messageQueue     = SignalChatFactory.CreateQueue();
            var broadcastMessage = new SignalRBroadcastMessage();
            var job = new SendMessageIntoChatRoom(messageQueue, broadcastMessage);

            new JobRunner(job, runContinuous: true).RunAsync();
        }
Exemplo n.º 2
0
        public static void MapDependencies(this IAppBuilder app, Container container)
        {
            container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

            container.Register <IMessageRepository>(() =>
            {
                var connectionString = ConfigurationManager.ConnectionStrings["Database"].ConnectionString;
                return(new MessageRepository(connectionString));
            });
            container.Register <IUserRepository>(() =>
            {
                var connectionString = ConfigurationManager.ConnectionStrings["Database"].ConnectionString;
                return(new UserRepository(connectionString));
            });
            container.Register <IProtectPasswordService, ProtectPasswordService>();
            container.Register <IRegisterService, RegisterService>();
            container.Register <ITokenService>(() =>
            {
                var key = ConfigurationManager.AppSettings["Secret"];
                return(new TokenService(key));
            });
            container.Register <ILoginService, LoginService>();
            container.Register <IStockService, OnlineStockService>();
            container.Register <IBotService, BotService>();
            container.Register <IQueue <Message> >(() => SignalChatFactory.CreateQueue().Value, Lifestyle.Singleton);
            container.Register <ISendMessageService, SendMessageService>();
            container.Verify();

            app.Use(async(context, next) =>
            {
                using (AsyncScopedLifestyle.BeginScope(container))
                {
                    await next();
                }
            });
        }