public void PublishEvent(IAggregateInfo aggregateInfo, int eventVersion, IEvent e) { var suscribers = _suscribers.Where(x => x.SuscribeTo().Any(y => y == e.GetEventType())).ToList(); foreach (var suscriber in suscribers) { suscriber.ManageEvent(aggregateInfo, eventVersion, e); } }
public async Task ManageEvent(IAggregateInfo aggregateInfo, int eventVersion, IEvent e) { var dto = EventStoreMapper.EventMapper(aggregateInfo, eventVersion, e); try { await _service.Save(dto); } catch (Exception ex) { throw ex; } }
public static EventStoredDTO EventMapper(IAggregateInfo aggregateInfo, int eventVersion, IEvent e) { return(new EventStoredDTO { AggregateId = aggregateInfo.AggregateId, AggregateActualVersion = aggregateInfo.AggregateActualVersion, AggregateBaseVersion = aggregateInfo.AggregateBaseVersion, AggregateType = aggregateInfo.AggregateType, AggregateData = JsonSerializer.Serialize(e.GetData()), CreationDate = e.GetDateItHappened(), EventType = (int)e.GetEventType(), EventVersion = eventVersion }); }
public void PublishEvent(IAggregateInfo aggregateInfo, int eventVersion, IEvent e) { var suscribers = _suscribers.Select( x => { x.SuscribeTo().Where(y => y == e.GetEventType()); return(x); } ); foreach (var suscriber in suscribers) { suscriber.ManageEvent(aggregateInfo, eventVersion, e); } }
public async Task ManageEvent(IAggregateInfo aggregateInfo, int eventVersion, IEvent e) { var dto = EventStoreMapper.EventMapper(aggregateInfo, eventVersion, e); try { await _service.Save(dto); _presenter.PublishAmountDeposited(dto.AggregateId, dto.AggregateData); } catch (Exception ex) { throw ex; } }
public async Task ManageEvent(IAggregateInfo aggregateInfo, int eventVersion, IEvent e) { var dto = EventStoreMapper.EventMapper(aggregateInfo, eventVersion, e); try { await _service.Save(dto); _presenter.PublishAccountCreated(dto.AggregateId, dto.AggregateData); } catch (Exception ex) { _presenter.PublishErrorCreatingAccount(ex.Message); throw; } }
/// <summary> /// 默认构造函数 /// </summary> /// <param name="aggregateInfoService">聚合信息接口</param> /// <param name="privateMessageService">私信接口</param> public AjaxPostController(IAggregateInfo aggregateInfoService, IPrivateMessage privateMessageService) { this.aggregateInfoService = aggregateInfoService; this.privateMessageService = privateMessageService; }
public FavoriteService(IAggregateInfo aggregateInfoService) { this.aggregateInfoService = aggregateInfoService; }
/// <summary> /// 默认构造函数 /// </summary> /// <param name="aggregateInfoService">聚合信息接口</param> public FavoriteService(IAggregateInfo aggregateInfoService) { this.aggregateInfoService = aggregateInfoService; }