private SynchronizeResult TryCallSynchronizersBeforeEventPersisting(EventStream eventStream) { var result = new SynchronizeResult { Status = SynchronizeStatus.Success }; foreach (var evnt in eventStream.Events) { var synchronizers = _eventSynchronizerProvider.GetSynchronizers(evnt.GetType()); foreach (var synchronizer in synchronizers) { try { synchronizer.OnBeforePersisting(evnt); } catch (Exception ex) { var errorMessage = string.Format( "Exception raised when calling synchronizer's OnBeforePersisting method. synchronizer:{0}, events:{1}", synchronizer.GetInnerSynchronizer().GetType().Name, eventStream.GetStreamInformation()); _logger.Error(errorMessage, ex); result.ErrorInfo = new ErrorInfo(errorMessage, ex); if (ex is ConcurrentException) { result.Status = SynchronizeStatus.SynchronizerConcurrentException; return(result); } result.Status = SynchronizeStatus.Failed; return(result); } } } return(result); }
public void SynchronizeReply(byte isMonitering, Dictionary <long, byte> result) { SynchronizeResult synchronizeResult = new SynchronizeResult(isMonitering, result); this.Transmit(synchronizeResult.Serialize()); }
private SynchronizeResult SyncBeforeEventPersisting(EventStream eventStream) { var result = new SynchronizeResult { Status = SynchronizeStatus.Success }; foreach (var evnt in eventStream.Events) { var synchronizers = _eventSynchronizerProvider.GetSynchronizers(evnt.GetType()); foreach (var synchronizer in synchronizers) { try { synchronizer.OnBeforePersisting(evnt); } catch (ConcurrentException) { result.Status = SynchronizeStatus.SynchronizerConcurrentException; return result; } catch (DomainException domainException) { var errorMessage = string.Format("{0} raised when calling synchronizer's OnBeforePersisting method. synchronizer:{1}, events:{2}, errorMessage:{3}", domainException.GetType().Name, synchronizer.GetInnerSynchronizer().GetType().Name, eventStream, domainException.Message); _logger.Error(errorMessage, domainException); result.Status = SynchronizeStatus.Failed; result.ExceptionCode = domainException.Code; result.ErrorMessage = domainException.Message; return result; } catch (Exception ex) { var errorMessage = string.Format("{0} raised when calling synchronizer's OnBeforePersisting method. synchronizer:{1}, events:{2}, errorMessage:{3}", ex.GetType().Name, synchronizer.GetInnerSynchronizer().GetType().Name, eventStream, ex.Message); _logger.Error(errorMessage, ex); result.Status = SynchronizeStatus.Failed; result.ErrorMessage = ex.Message; return result; } } } return result; }