EventStore.Projections.Core.Services.Management.SerializedRunAs.SerializePrincipal C# (CSharp) Method

SerializePrincipal() public static method

public static SerializePrincipal ( ProjectionManagementMessage runAs ) : SerializedRunAs
runAs ProjectionManagementMessage
return SerializedRunAs
        public static SerializedRunAs SerializePrincipal(ProjectionManagementMessage.RunAs runAs)
        {
            if (runAs == null)
                return null;
            if (runAs.Principal == null)
                return null; // anonymous
            if (runAs.Principal == SystemAccount.Principal)
                return new SerializedRunAs {Name = "$system"};

            var genericPrincipal = runAs.Principal as OpenGenericPrincipal;
            if (genericPrincipal == null)
                throw new ArgumentException(
                    "OpenGenericPrincipal is the only supported principal type in projections", "runAs");
            return new SerializedRunAs {Name = runAs.Principal.Identity.Name, Roles = genericPrincipal.Roles};
        }

Usage Example

Example #1
0
            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);
            }
All Usage Examples Of EventStore.Projections.Core.Services.Management.SerializedRunAs::SerializePrincipal