public void Handle(ProjectionManagementMessage.Enable message) { _lastAccessed = _timeProvider.Now; if (!ProjectionManagementMessage.RunAs.ValidateRunAs(Mode, ReadWrite.Write, _runAs, message)) { return; } if (Enabled && _state == ManagedProjectionState.Running) { message.Envelope.ReplyWith( new ProjectionManagementMessage.OperationFailed("Already enabled and running")); return; } if (!Enabled) { Enable(); } Action completed = () => { if (_state == ManagedProjectionState.Prepared) { StartOrLoadStopped(() => message.Envelope.ReplyWith(new ProjectionManagementMessage.Updated(message.Name))); } else { message.Envelope.ReplyWith( new ProjectionManagementMessage.Updated(message.Name)); } }; UpdateProjectionVersion(); Prepare(() => BeginWrite(completed)); }
public void Handle(ProjectionManagementMessage.Enable message) { _logger.Info("Enabling '{0}' projection", message.Name); var projection = GetProjection(message.Name); if (projection == null) { message.Envelope.ReplyWith(new ProjectionManagementMessage.NotFound()); } else { projection.Handle(message); } }
public void Handle(ProjectionManagementMessage.Enable message) { if (Enabled) { message.Envelope.ReplyWith(new ProjectionManagementMessage.OperationFailed("Not disabled")); return; } Enable(); BeginWrite( () => { message.Envelope.ReplyWith(new ProjectionManagementMessage.Updated(message.Name)); StartIfEnabled(); }); }
public void Handle(ProjectionManagementMessage.Enable message) { if (Enabled) { message.Envelope.ReplyWith(new ProjectionManagementMessage.OperationFailed("Not disabled")); return; } Enable(); PrepareAndBeginWrite( forcePrepare: true, completed: () => Start( () => message.Envelope.ReplyWith(new ProjectionManagementMessage.Updated(message.Name)))); }
public void Handle(ProjectionManagementMessage.Enable message) { if (!_started) { return; } _logger.Info("Enabling '{0}' projection", message.Name); var projection = GetProjection(message.Name); if (projection == null) { _logger.Error("DBG: PROJECTION *{0}* NOT FOUND!!!", message.Name); message.Envelope.ReplyWith(new ProjectionManagementMessage.NotFound()); } else { projection.Handle(message); } }