public void RegisterUpdated(EntityBase entity, IPersistRepository repository) { if (!Modified.ContainsKey(entity)) { Modified.Add(entity, repository); } }
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"); } }
/// <summary> /// Конструктор реализации службы для записи событий в БД. /// Создаёт новый экземпляр класса <see cref="EventsWriter"/>. /// </summary> public EventsWriter( IPersistRepository persistRepository, ILogger <EventsWriter> logger) { _persistRepository = persistRepository; _logger = logger; }
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); }
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"); } }
public void Setup() { _persistRepository = ContextRegistry.GetContext()["PersistRepository"] as IPersistRepository <object>; }
public void RegisterUpdated(EntityBase entity, IPersistRepository repository) { if (!Modified.ContainsKey(entity)) Modified.Add(entity, repository); }
public void RegisterRemoved(EntityBase entity, IPersistRepository repository) { if (!Removed.ContainsKey(entity)) Removed.Add(entity, repository); }
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; }
public void Setup() { ctx = ContextRegistry.GetContext(); _tradeRespository = ContextRegistry.GetContext()["TradeRepository"] as ITradeRepository; _repository = ContextRegistry.GetContext()["PersistRepository"] as IPersistRepository <object>; }