コード例 #1
0
ファイル: Ninject.Web.Common.cs プロジェクト: adkl/nsi
        /// <summary>
        /// Load your modules or register your services here!
        /// </summary>
        /// <param name="kernel">The kernel.</param>
        private static void RegisterServices(IKernel kernel)
        {
            kernel.Bind <NsiContext>().To <NsiContext>().InRequestScope();
            kernel.Bind <ILoggerAdapter>().To <NLogAdapter>().InSingletonScope();

            // Repositories
            kernel.Bind <IPermissionRepository>().To <PermissionRepository>().InRequestScope();
            kernel.Bind <IModuleRepository>().To <ModuleRepository>().InRequestScope();
            kernel.Bind <IUserRepository>().To <UserRepository>().InRequestScope();
            kernel.Bind <IDeviceTypeRepository>().To <DeviceTypeRepository>().InRequestScope();
            kernel.Bind <IDeviceRepository>().To <DeviceRepository>().InRequestScope();
            kernel.Bind <IIncidentRepository>().To <IncidentRepository>().InRequestScope();
            kernel.Bind <IIncidentSettlementRepository>().To <IncidentSettlementRepository>().InRequestScope();
            kernel.Bind <IIncidentTypeRepository>().To <IncidentTypeRepository>().InRequestScope();
            kernel.Bind <IIncidentPriorityRepository>().To <IncidentPriorityRepository>().InRequestScope();
            kernel.Bind <IIncidentWorkOrderRepository>().To <IncidentWorkOrderRepository>().InRequestScope();
            kernel.Bind <IIncidentStatusRepository>().To <IncidentStatusRepository>().InRequestScope();
            kernel.Bind <IDevicePingRepository>().To <DevicePingRepository>().InRequestScope();
            kernel.Bind <IRoleRepository>().To <RoleRepository>().InRequestScope();
            kernel.Bind <ITenantRepository>().To <TenantRepository>().InRequestScope();
            kernel.Bind <ILanguageRepository>().To <LanguageRepository>().InRequestScope();
            kernel.Bind <IRolePermissionRepository>().To <RolePermissonRepository>().InRequestScope();
            kernel.Bind <IRoleMemberRepository>().To <RoleMemberRepository>().InRequestScope();
            kernel.Bind <IRuleRepository>().To <RuleRepository>().InRequestScope();
            kernel.Bind <IDeviceActionRepository>().To <DeviceActionRepository>().InRequestScope();
            kernel.Bind <IDevicePropertyRepository>().To <DevicePropertyRepository>().InRequestScope();

            kernel.Bind <IDocumentTypeRepository>().To <DocumentTypeRepository>().InRequestScope();
            kernel.Bind <IGeneratedDocumentRepository>().To <GeneratedDocumentRepository>().InRequestScope();
            kernel.Bind <IEmailMessageRepository>().To <EmailMessageRepository>().InRequestScope();
            kernel.Bind <IEmailRecipientRepository>().To <EmailRecipientRepository>().InRequestScope();
            kernel.Bind <IEmailRecipientTypeRepository>().To <EmailRecipientTypeRepository>().InRequestScope();
            kernel.Bind <IAttachmentRepository>().To <AttachmentRepository>().InRequestScope();
            kernel.Bind <INotificationRepository>().To <NotificationRepository>().InRequestScope();
            kernel.Bind <INotificationUserRepository>().To <NotificationUserRepository>().InRequestScope();
            kernel.Bind <INotificationStatusRepository>().To <NotificationStatusRepository>().InRequestScope();
            kernel.Bind <ISmsRepository>().To <SmsRepository>().InRequestScope();
            kernel.Bind <INotificationTypeRepository>().To <NotificationTypeRepository>().InRequestScope();
            kernel.Bind <IWebNotificationRepository>().To <WebNotificationRepository>().InRequestScope();
            kernel.Bind <IDocumentRepository>().To <DocumentRepository>().InRequestScope();
            kernel.Bind <IFileTypeRepository>().To <FileTypeRepository>().InRequestScope();
            kernel.Bind <IStorageTypeRepository>().To <StorageTypeRepository>().InRequestScope();

            kernel.Bind <IFolderRepository>().To <FolderRepository>().InRequestScope();
            kernel.Bind <ITemplateRepository>().To <TemplateRepository>().InRequestScope();
            kernel.Bind <ITemplateVersionRepository>().To <TemplateVersionRepository>().InRequestScope();

            // Business
            kernel.Bind <IPermissionManipulation>().To <PermissionManipulation>().InRequestScope();
            kernel.Bind <IModuleManipulation>().To <ModuleManipulation>().InRequestScope();
            kernel.Bind <IUserManipulation>().To <UserManipulation>().InRequestScope();
            kernel.Bind <IDeviceTypeManipulation>().To <DeviceTypeManipulation>().InRequestScope();
            kernel.Bind <IDeviceManipulation>().To <DeviceManipulation>().InRequestScope();
            kernel.Bind <IIncidentManipulation>().To <IncidentManipulation>().InRequestScope();
            kernel.Bind <IIncidentSettlementManipulation>().To <IncidentSettlementManipulation>().InRequestScope();
            kernel.Bind <IGeneratedDocumentLogger>().To <GeneratedDocumentLogger>().InRequestScope();
            kernel.Bind <IFileGenerator>().To <FileGenerator>().InRequestScope();
            kernel.Bind <IDocumentGenerator>().To <DocumentGenerator>().InRequestScope();
            kernel.Bind <IPdfGenerator>().To <PdfGenerator>().InRequestScope();
            kernel.Bind <IHtmlGenerator>().To <HtmlGenerator>().InRequestScope();
            kernel.Bind <IOdtGenerator>().To <OdtGenerator>().InRequestScope();
            kernel.Bind <IDocxGenerator>().To <DocxGenerator>().InRequestScope();
            kernel.Bind <IHtmlGeneratorHelper>().To <HtmlGeneratorHelper>().InRequestScope();
            kernel.Bind <IIncidentTypeManipulation>().To <IncidentTypeManipulation>().InRequestScope();
            kernel.Bind <IIncidentPriorityManipulation>().To <IncidentPriorityManipulation>().InRequestScope();
            kernel.Bind <IIncidentWorkOrderManipulation>().To <IncidentWorkOrderManipulation>().InRequestScope();
            kernel.Bind <IIncidentStatusManipulation>().To <IncidentStatusManipulation>().InRequestScope();
            kernel.Bind <IDevicePingManipulation>().To <DevicePingManipulation>().InRequestScope();
            kernel.Bind <IPingDeviceManipulation>().To <PingDeviceManipulation>().InRequestScope();
            kernel.Bind <IRoleManipulation>().To <RoleManipulation>().InRequestScope();
            kernel.Bind <IRuleManipulation>().To <RuleManipulation>().InRequestScope();
            kernel.Bind <IDeviceActionManipulation>().To <DeviceActionManipulation>().InRequestScope();
            kernel.Bind <IDevicePropertyManipulation>().To <DevicePropertyManipulation>().InRequestScope();


            kernel.Bind <IEmailMessageManipulation>().To <EmailMessageManipulation>().InRequestScope();
            kernel.Bind <IEmailRecipientManipulation>().To <EmailRecipientManipulation>().InRequestScope();
            kernel.Bind <IEmailRecipientTypeManipulation>().To <EmailRecipientTypeManipulation>().InRequestScope();
            kernel.Bind <IAttachmentManipulation>().To <AttachmentManipulation>().InRequestScope();
            kernel.Bind <INotificationManipulation>().To <NotificationManipulation>().InRequestScope();
            kernel.Bind <INotificationUserManipulation>().To <NotificationUserManipulation>().InRequestScope();
            kernel.Bind <INotificationStatusManipulation>().To <NotificationStatusManipulation>().InRequestScope();
            kernel.Bind <ISmsManipulation>().To <SmsManipulation>().InRequestScope();
            kernel.Bind <INotificationTypeManipulation>().To <NotificationTypeManipulation>().InRequestScope();
            kernel.Bind <IWebNotificationManipulation>().To <WebNotificationManipulation>().InRequestScope();
            kernel.Bind <IDocumentManipulation>().To <DocumentManipulation>().InRequestScope();
            kernel.Bind <IFileTypeManipulation>().To <FileTypeManipulation>().InRequestScope();
            kernel.Bind <IStorageTypeManipulation>().To <StorageTypeManipulation>().InRequestScope();
            kernel.Bind <ITenantManipulation>().To <TenantManipulation>().InRequestScope();
            kernel.Bind <ILanguageManipulation>().To <LanguageManipulation>().InRequestScope();
            kernel.Bind <IRolePermissionManipulation>().To <RolePermissionManipulation>().InRequestScope();
            kernel.Bind <IRoleMemberManipulation>().To <RoleMemberManipulation>().InRequestScope();

            kernel.Bind <IFolderManipulation>().To <FolderManipulation>().InRequestScope();
            kernel.Bind <ITemplateManipulation>().To <TemplateManipulation>().InRequestScope();
            kernel.Bind <ITemplateVersionManipulation>().To <TemplateVersionManipulation>().InRequestScope();
            kernel.Bind <ITemplateGenerator>().To <TemplateGenerator>().InRequestScope();
            kernel.Bind <IExportTemplateManipulation>().To <ExportTemplateManipulation>().InRequestScope();

            // RabbitMq EventBus Bindings
            var busControl = Bus.Factory.CreateUsingRabbitMq(cfg =>
            {
                var host = cfg.Host(new Uri(ConfigurationManager.AppSettings["rabbitMQHostUri"].ToString()), h =>
                {
                    h.Username(ConfigurationManager.AppSettings["rabbitMQUsername"].ToString());
                    h.Password(ConfigurationManager.AppSettings["rabbitMQPassword"].ToString());
                });

                // Define message queues and bind consumers to queue here
                cfg.ReceiveEndpoint(host, "message_log_queue", e =>
                {
                    e.Consumer <LogMessageReceivedConsumer>();
                });

                cfg.ReceiveEndpoint(host, "device_ping_queue", e =>
                {
                    e.Consumer <DevicePingReceivedConsumer>();
                });

                cfg.ReceiveEndpoint(host, "ping_device_queue", e =>
                {
                    e.Consumer <PingDeviceReceivedConsumer>();
                });
            });

            kernel.Bind <IBusControl, IPublishEndpoint>().ToMethod(c =>
            {
                return(busControl);
            })
            .InSingletonScope();


            kernel.Bind <IBus>().ToProvider(new CallbackProvider <IBus>(x => x.Kernel.Get <IBusControl>()));

            busControl.Start();

            DevicePingListener.MakeInstance(
                (IRuleRepository)kernel.GetService(typeof(IRuleRepository)),
                (IIncidentRepository)kernel.GetService(typeof(IIncidentRepository)),
                (IDevicePingRepository)kernel.GetService(typeof(IDevicePingRepository)),
                (IIncidentTypeRepository)kernel.GetService(typeof(IIncidentTypeRepository))
                );

            // TODO: Do this better :)
            kernel.BindHttpFilter <HandleExceptionFilterAttribute>(FilterScope.Global).WithConstructorArgument("logger", kernel.Get <ILoggerAdapter>());

            kernel.Load(Assembly.GetExecutingAssembly());
            //kernel.Bind(x => x.FromAssembliesMatching("dll name").SelectAllClasses().BindAllInterfaces();
        }
コード例 #2
0
        /// <summary>
        /// Method provides an example how to implement message consumer.
        /// This should be removed later.
        /// </summary>
        /// <param name="context">Message context</param>
        /// <returns></returns>
        public async Task Consume(ConsumeContext <IDevicePingReceived> context)
        {
            DevicePingListener.GetInstance().EvaluateAll(context.Message.DevicePing);

            System.Diagnostics.Debug.WriteLine($"Device Ping received: {context.Message.DevicePing}");
        }