public void CreateAndInitializeNewProjection(
ProjectionManager projectionManager,
Guid projectionCorrelationId,
Guid workerId,
bool isSlave = false,
Guid slaveMasterWorkerId = default(Guid),
Guid slaveMasterCorrelationId = default(Guid),
int?version = -1)
{
var projection = projectionManager.CreateManagedProjectionInstance(
_name,
_projectionId,
projectionCorrelationId,
workerId,
isSlave,
slaveMasterWorkerId,
slaveMasterCorrelationId);
projection.InitializeNew(
new ManagedProjection.PersistedState
{
Enabled = _enabled,
HandlerType = _handlerType,
Query = _query,
Mode = _projectionMode,
EmitEnabled = _emitEnabled,
CheckpointsDisabled = !_checkpointsEnabled,
Epoch = -1,
Version = version,
RunAs = _enableRunAs ? SerializedRunAs.SerializePrincipal(_runAs) : null
},
_replyEnvelope);
}