Example #1
0
        protected virtual void LoadServiceAndServiceAgents()
        {
            // add here necessary stuff to the container
            var unityContainer                  = Container.Resolve <IUnityContainer>();
            var canalDirectServiceAgent         = new CanalDirectServiceAgent();
            var configurationDirectServiceAgent = new ConfigurationDirectServiceAgent();
            var canalFlowService                = new CanalFlowService();
            var configurationService            = new ConfigurationService();
            var canalManager          = new CanalManager();
            var configurationLoader   = new CanalConfigurationLoader();
            var sequenceTaskScheduler = new SequenceTaskScheduler();

            unityContainer.RegisterInstance <ICanalServiceAgent>(canalDirectServiceAgent);
            unityContainer.RegisterInstance <IConfigurationServiceAgent>(configurationDirectServiceAgent);
            unityContainer.RegisterInstance <ICanalFlowService>(canalFlowService);
            unityContainer.RegisterInstance <IConfigurationService>(configurationService);
            unityContainer.RegisterInstance <ICanalManager>(canalManager);
            unityContainer.RegisterInstance <ICanalConfigurationLoader>(configurationLoader);
            unityContainer.RegisterInstance(sequenceTaskScheduler);

            // build up everything
            unityContainer.BuildUp(canalDirectServiceAgent);
            unityContainer.BuildUp(configurationDirectServiceAgent);
            unityContainer.BuildUp(canalFlowService);
            unityContainer.BuildUp(configurationService);
            unityContainer.BuildUp(configurationLoader);

            // register for start/connect/etc
        }
Example #2
0
 public EventPatternTest(SequenceTaskScheduler scheduler)
 {
     Scheduler = scheduler;
 }
Example #3
0
        /// <summary>
        /// Queues an AsyncEventHandler invocation to the SequenceTokenWorkDispatcher.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="eventHandler">The event handler.</param>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The arguments.</param>
        /// <param name="dispatcher">The dispatcher.</param>
        /// <param name="tokens">The tokens.</param>
        public static void RaiseQueued <T>(this AsyncEventHandler <T> eventHandler, object sender, T args, SequenceTaskScheduler dispatcher, params object[] tokens)
        {
            // queue a task that produces a
            var task = new Task <Task>(async() => { await eventHandler.RaiseAsync(sender, args); });

            dispatcher.EnqueueWorkAsync(task, tokens).ObserveExceptions();
        }