Beispiel #1
0
 public void RegisterUpdated(EntityBase entity, IPersistRepository repository)
 {
     if (!Modified.ContainsKey(entity))
     {
         Modified.Add(entity, repository);
     }
 }
Beispiel #2
0
 public void RegisterRemoved(EntityBase entity, IPersistRepository repository)
 {
     if (!Removed.ContainsKey(entity))
     {
         Removed.Add(entity, repository);
     }
 }
        /// <summary>
        /// Initialize Disruptor
        /// </summary>
        public static void InitializeDisruptor(bool enablePersistence, IPersistRepository <object> persistRepository)
        {
            EnablePersistence = enablePersistence;
            try
            {
                if (enablePersistence)
                {
                    if (_disruptor == null)
                    {
                        Journaler journaler = new Journaler(persistRepository);
                        // Initialize Disruptor
                        _disruptor = new Disruptor <byte[]>(() => new byte[10000], _ringSize, TaskScheduler.Default);

                        // Add Consumer
                        _disruptor.HandleEventsWith(journaler);
                        // Start Disruptor
                        _ringBuffer = _disruptor.Start();
                        // Get Publisher
                        _publisher = new EventPublisher <byte[]>(_ringBuffer);
                    }
                }
            }
            catch (Exception exception)
            {
                Logger.Error(exception, _type.FullName, "InitializeDisruptor");
            }
        }
Beispiel #4
0
 /// <summary>
 /// Конструктор реализации службы для записи событий в БД.
 /// Создаёт новый экземпляр класса <see cref="EventsWriter"/>.
 /// </summary>
 public EventsWriter(
     IPersistRepository persistRepository,
     ILogger <EventsWriter> logger)
 {
     _persistRepository = persistRepository;
     _logger            = logger;
 }
Beispiel #5
0
 public void Setup()
 {
     ctx = ContextRegistry.GetContext();
     //_orderRespository=new OrderRespository();
     sessionFactory    = ContextRegistry.GetContext()["NHibernateSessionFactory"] as ISessionFactory;
     _orderRespository = ContextRegistry.GetContext()["OrderRespository"] as IOrderRepository;
     _repository       = ContextRegistry.GetContext()["PersistRepository"] as IPersistRepository <object>;
 }
        /// <summary>
        /// Default Constructor
        /// </summary>
        public StrategyController()
        {
            IPersistRepository <object> persistRepository = ContextRegistry.GetContext()["PersistRepository"] as IPersistRepository <object>;

            // Save UI thread reference
            _currentDispatcher = Dispatcher.CurrentDispatcher;

            PersistencePublisher.InitializeDisruptor(persistRepository);
        }
Beispiel #7
0
        public static ScheduledAction Borrow(IAggregateRoot target, IPersistRepository repository, ScheduledActionType type)
        {
            var action = _pool.Borrow();

            action.Target     = target;
            action.Repository = repository;
            action.Type       = type;
            action.Expired    = false;
            return(action);
        }
        /// <summary>
        /// Starts Communicator to open communication medium with clients
        /// </summary>
        public void StartCommunicator()
        {
            // Check for Null Reference
            if (_communicator != null)
            {
                // Connect Communication Server
                _communicator.Connect();

                IPersistRepository <object> persistRepository = ContextRegistry.GetContext()["PersistRepository"] as IPersistRepository <object>;
                PersistencePublisher.InitializeDisruptor(true, persistRepository);
            }
        }
        /// <summary>
        /// Execute selected strategy
        /// </summary>
        private void RunSelectedStrategy(string key)
        {
            try
            {
                IPersistRepository <object> persistRepository = ContextRegistry.GetContext()["PersistRepository"] as IPersistRepository <object>;
                PersistencePublisher.InitializeDisruptor(EnablePersistence, persistRepository);
                if (Logger.IsInfoEnabled)
                {
                    Logger.Info("Going to execute the selected strategy: ", _type.FullName, "RunSelectedStrategy");
                }

                // Create new instance to pass to event aggregator
                RunStrategy runStrategy = new RunStrategy(key);

                // Publish event to notify listeners
                EventSystem.Publish <RunStrategy>(runStrategy);
            }
            catch (Exception exception)
            {
                Logger.Error(exception, _type.FullName, "RunSelectedStrategy");
            }
        }
Beispiel #10
0
 public void Setup()
 {
     _persistRepository = ContextRegistry.GetContext()["PersistRepository"] as IPersistRepository <object>;
 }
Beispiel #11
0
 public void RegisterUpdated(EntityBase entity, IPersistRepository repository)
 {
     if (!Modified.ContainsKey(entity))
         Modified.Add(entity, repository);
 }
Beispiel #12
0
 public void RegisterRemoved(EntityBase entity, IPersistRepository repository)
 {
     if (!Removed.ContainsKey(entity))
         Removed.Add(entity, repository);
 }
Beispiel #13
0
 public Journaler(IPersistRepository <object> persistRepository)
 {
     _persistRepository = persistRepository;
 }
 public void RegisterDeleted <T>(T item, IPersistRepository repository) where T : IAggregateRoot
 {
     ProcessAction(ScheduledAction.Borrow(item, repository, ScheduledActionType.Delete));
     item.SaveState();
     item.MarkDirty();//无论是延迟执行,还是立即执行,我们都需要提供统一的状态给领域层使用
 }
 public RepositoryRollbackEventArgs(IAggregateRoot target, IPersistRepository repository, RepositoryAction action)
 {
     this.Target     = target;
     this.Repository = repository;
     this.Action     = action;
 }
Beispiel #16
0
 public void Setup()
 {
     ctx = ContextRegistry.GetContext();
     _tradeRespository = ContextRegistry.GetContext()["TradeRepository"] as ITradeRepository;
     _repository       = ContextRegistry.GetContext()["PersistRepository"] as IPersistRepository <object>;
 }