public DispatchFactory(Interfaces.ISiqiServer server) { // mLoginDispather = new Dispatch.Dispatcher(); mTalkDispather = new Dispatch.Dispatcher(); mGlobalDispather = new Dispatch.Dispatcher(); mRoomDispatcher = new Dispatch.RoomDispatcher(server); mDeskDispatcher = new Dispatch.DeskDispatcher(); }
public void Start(string requestUrl, string responseUrl) { var outgoing = new Dispatch.Dispatcher(requestUrl); var incoming = new Dispatch.Dispatcher(responseUrl); IRepository<string, AppointmentMessage> manager = new Repository(outgoing, incoming); outgoing.Callback = manager.Pending; incoming.Callback = null; Console.WriteLine("Manager: New requests will be dispatched to {0}", requestUrl); Console.WriteLine("Manager: Responses will be dispatched to {0}", responseUrl); // Set up IoC var builder = new ContainerBuilder(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.Register(ctx => manager) .As<IRepository<string, AppointmentMessage>>() .SingleInstance(); Config.DependencyResolver = new AutofacWebApiDependencyResolver(builder.Build()); _server.OpenAsync().Wait(); }
private void Register <MSG, HANDLER>(Dispatch.Dispatcher dispatcher) where HANDLER : IMessageHandler, new() { mDispatcherMap[typeof(MSG)] = dispatcher; dispatcher.Register <MSG, HANDLER>(); }