public void Handle(ProjectionManagementMessage.Command.Delete message) { if ((_state != ManagedProjectionState.Stopped && _state != ManagedProjectionState.Faulted) && Mode != ProjectionMode.Transient) { throw new InvalidOperationException("Cannot delete a projection that hasn't been stopped or faulted."); } _lastAccessed = _timeProvider.Now; PersistedProjectionState.DeleteCheckpointStream = message.DeleteCheckpointStream; PersistedProjectionState.DeleteStateStream = message.DeleteStateStream; PersistedProjectionState.DeleteEmittedStreams = message.DeleteEmittedStreams; if (PersistedProjectionState.DeleteCheckpointStream) { PersistedProjectionState.NumberOfPrequisitesMetForDeletion++; } if ((PersistedProjectionState.EmitEnabled ?? false) && ((PersistedProjectionState.TrackEmittedStreams ?? false) && PersistedProjectionState.DeleteEmittedStreams)) { PersistedProjectionState.NumberOfPrequisitesMetForDeletion++; } Delete(); UpdateProjectionVersion(); SetLastReplyEnvelope(message.Envelope); SetState(ManagedProjectionState.Deleting); StopUnlessPreparedOrLoaded(); }
public void Handle(ProjectionManagementMessage.Command.Delete message) { if (!_started) { return; } var projection = GetProjection(message.Name); if (projection == null) { message.Envelope.ReplyWith(new ProjectionManagementMessage.NotFound()); } else { if (!ProjectionManagementMessage.RunAs.ValidateRunAs(projection.Mode, ReadWrite.Write, projection.RunAs, message)) { return; } try { projection.Handle(message); } catch (InvalidOperationException ex) { message.Envelope.ReplyWith(new ProjectionManagementMessage.OperationFailed(ex.Message)); return; } } }
public void Handle(ProjectionManagementMessage.Command.Delete message) { var command = new DeleteCommand { Name = message.Name, RunAs = message.RunAs, DeleteCheckpointStream = message.DeleteCheckpointStream, DeleteStateStream = message.DeleteStateStream, DeleteEmittedStreams = message.DeleteEmittedStreams, }; _writer.PublishCommand("$delete", command); }
public void Handle(ProjectionManagementMessage.Command.Delete message) { _lastAccessed = _timeProvider.Now; if (!ProjectionManagementMessage.RunAs.ValidateRunAs(Mode, ReadWrite.Write, _runAs, message)) { return; } DoDelete(); UpdateProjectionVersion(); SetLastReplyEnvelope(message.Envelope); StopUnlessPreparedOrLoaded(); }
public void Handle(ProjectionManagementMessage.Command.Delete message) { if (_state != ManagedProjectionState.Stopped) { message.Envelope.ReplyWith(new ProjectionManagementMessage.OperationFailed("Cannot delete a projection that hasn't been stopped.")); } _lastAccessed = _timeProvider.Now; if (!ProjectionManagementMessage.RunAs.ValidateRunAs(Mode, ReadWrite.Write, _runAs, message)) { return; } DoDelete(); UpdateProjectionVersion(); SetLastReplyEnvelope(message.Envelope); StopUnlessPreparedOrLoaded(); }
public void Handle(ProjectionManagementMessage.Command.Delete message) { if (_state != ManagedProjectionState.Stopped && Mode != ProjectionMode.Transient) { throw new InvalidOperationException("Cannot delete a running projection"); } _lastAccessed = _timeProvider.Now; if (message.DeleteCheckpointStream) { DeleteCheckpointStream(); } DoDelete(); UpdateProjectionVersion(); SetLastReplyEnvelope(message.Envelope); StopUnlessPreparedOrLoaded(); }
public void Handle(ProjectionManagementMessage.Command.Delete message) { if (_state != ManagedProjectionState.Stopped) { message.Envelope.ReplyWith(new ProjectionManagementMessage.OperationFailed("Cannot delete a projection that hasn't been stopped.")); } _lastAccessed = _timeProvider.Now; if (message.DeleteCheckpointStream) { DeleteCheckpointStream(); } DoDelete(); UpdateProjectionVersion(); SetLastReplyEnvelope(message.Envelope); StopUnlessPreparedOrLoaded(); }
public void Handle(ProjectionManagementMessage.Command.Delete message) { if (!_started) { return; } var projection = GetProjection(message.Name); if (projection == null) { message.Envelope.ReplyWith(new ProjectionManagementMessage.NotFound()); } else { if (!ProjectionManagementMessage.RunAs.ValidateRunAs(projection.GetMode(), ReadWrite.Write, projection.RunAs, message)) { return; } try { projection.Handle(message); } catch (InvalidOperationException ex) { message.Envelope.ReplyWith(new ProjectionManagementMessage.OperationFailed(ex.Message)); return; } _projections.Remove(message.Name); _projectionsMap.Remove(projection.Id); const string eventStreamId = "$projections-$all"; var corrId = Guid.NewGuid(); _writeDispatcher.Publish( new ClientMessage.WriteEvents( corrId, corrId, _writeDispatcher.Envelope, true, eventStreamId, ExpectedVersion.Any, new Event( Guid.NewGuid(), "$ProjectionDeleted", false, Helper.UTF8NoBom.GetBytes(message.Name), Empty.ByteArray), SystemAccount.Principal), m => { }); } }
public void Handle(ProjectionManagementMessage.Command.Delete message) { if (!_started) { return; } var projection = GetProjection(message.Name); if (projection == null) { message.Envelope.ReplyWith(new ProjectionManagementMessage.NotFound()); } else { projection.Handle(message); _projections.Remove(message.Name); _projectionsMap.Remove(projection.Id); } }