Exemplo n.º 1
0
        public void Handle(ProjectionManagementMessage.SetRunAs message)
        {
            _lastAccessed = _timeProvider.Now;
            if (
                !ProjectionManagementMessage.RunAs.ValidateRunAs(
                    Mode, ReadWrite.Write, _runAs, message,
                    message.Action == ProjectionManagementMessage.SetRunAs.SetRemove.Set))
            {
                return;
            }


            Stop(
                () =>
            {
                UpdateProjectionVersion();
                _persistedState.RunAs = message.Action == ProjectionManagementMessage.SetRunAs.SetRemove.Set
                                                    ? SerializePrincipal(message.RunAs)
                                                    : null;
                _runAs = DeserializePrincipal(_persistedState.RunAs);

                Prepare(
                    () => BeginWrite(
                        () =>
                {
                    StartOrLoadStopped(() => { });
                    message.Envelope.ReplyWith(
                        new ProjectionManagementMessage.Updated(message.Name));
                }));
            });
        }
Exemplo n.º 2
0
        public void Handle(ProjectionManagementMessage.SetRunAs message)
        {
            if (!_started)
            {
                return;
            }
            _logger.Info("Setting RunAs account for '{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);
            }
        }