Beispiel #1
0
        static void Main(string[] args)
        {
            using (var bus = new MXRabbitClient(ConfigurationManager.AppSettings["rabbitMQConnectionString"]).Bus)
            {
                var clientProcessor = new ClientProcessor(new MXBusinessMongoRepository());

                bus.Subscribe <IMXEntity>("IMXEntityType", clientProcessor.ProcessClient);

                var bookProcessor = new BookProcessor(new MXProductCatalogMongoRepository(), new BookSearchRepository());

                bus.RespondAsync <IMXEntity, BookQueueResponse>(request =>
                                                                Task.Run(() =>
                {
                    return(bookProcessor.ProcessSingleBookForMongo(request));
                })
                                                                );

                bus.RespondAsync <IList <Book>, BooksQueueResponse>(request =>
                                                                    Task.Run(() =>
                {
                    return(bookProcessor.ProcessManyBooksForMongo(request));
                })
                                                                    );

                bus.Subscribe <ISearchDocument>("ISearchDocumentType", bookProcessor.ProcessSingleBookForSearch);

                bus.Subscribe <IList <BookSearchDocument> >("BookSearchDocumentType", bookProcessor.ProcessManyBooksForSearch);

                Console.ForegroundColor = ConsoleColor.Red;

                Console.WriteLine("Listening for messages. Hit <return> to quit.");

                Console.ResetColor();

                Console.ReadLine();
            }
        } //End of Main