Example #1
0
 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();
 }
Example #2
0
        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();
        }
Example #3
0
 private void Register <MSG, HANDLER>(Dispatch.Dispatcher dispatcher) where HANDLER : IMessageHandler, new()
 {
     mDispatcherMap[typeof(MSG)] = dispatcher;
     dispatcher.Register <MSG, HANDLER>();
 }