|  | /** | 
|  | * Licensed to the Apache Software Foundation (ASF) under one | 
|  | * or more contributor license agreements. See the NOTICE file | 
|  | * distributed with this work for additional information | 
|  | * regarding copyright ownership. The ASF licenses this file | 
|  | * to you under the Apache License, Version 2.0 (the | 
|  | * "License"); you may not use this file except in compliance | 
|  | * with the License. You may obtain a copy of the License at | 
|  | * | 
|  | *   http://www.apache.org/licenses/LICENSE-2.0 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, | 
|  | * software distributed under the License is distributed on an | 
|  | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | * KIND, either express or implied. See the License for the | 
|  | * specific language governing permissions and limitations | 
|  | * under the License. | 
|  | */ | 
|  |  | 
|  | using Rebus.Configuration; | 
|  | using Rebus.RabbitMQ; | 
|  | using System; | 
|  | using System.Collections.Generic; | 
|  | using System.Linq; | 
|  | using System.Text; | 
|  | using System.Threading.Tasks; | 
|  | using RebusSample.Client; | 
|  | using RebusSample.Server; | 
|  |  | 
|  | namespace RebusSample | 
|  | { | 
|  | class Program | 
|  | { | 
|  | static BuiltinContainerAdapter StartRequestServer(string server) | 
|  | { | 
|  | // client Rebus configuration | 
|  | var adapter = new BuiltinContainerAdapter(); | 
|  | Configure.With(adapter) | 
|  | .Transport(t => t.UseRabbitMq("amqp://" + server, "MathRequests", "MathRequestErrors")) | 
|  | .MessageOwnership(o => o.FromRebusConfigurationSection()) | 
|  | .CreateBus().Start(); | 
|  |  | 
|  | // register all relevant message handlers | 
|  | adapter.Register(typeof(MathRequestCallHandler)); | 
|  | return adapter; | 
|  | } | 
|  |  | 
|  |  | 
|  | static BuiltinContainerAdapter StartResponseServer(string server) | 
|  | { | 
|  | // client Rebus configuration | 
|  | var adapter = new BuiltinContainerAdapter(); | 
|  | Configure.With(adapter) | 
|  | .Transport(t => t.UseRabbitMq("amqp://" + server, "MathResponses", "MathResponseErrors")) | 
|  | .MessageOwnership(o => o.FromRebusConfigurationSection()) | 
|  | .CreateBus().Start(); | 
|  |  | 
|  | // register all relevant message handlers | 
|  | adapter.Register(typeof(MathResponseCallHandler)); | 
|  | return adapter; | 
|  | } | 
|  |  | 
|  | static void Main(string[] args) | 
|  | { | 
|  | string server = "localhost"; | 
|  |  | 
|  | // start all servers | 
|  | var req = StartRequestServer(server); | 
|  | var rsp = StartResponseServer(server); | 
|  |  | 
|  | // send the first message | 
|  | var random = new Random(); | 
|  | var client = new MathRequestClient(server); | 
|  | client.DoTheMath(random.Next(), random.Next()); | 
|  |  | 
|  | // now what? | 
|  | Console.Write("Hit <ENTER> to stop ... "); | 
|  | Console.ReadLine(); | 
|  | } | 
|  | } | 
|  | } |