Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
 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();
     });
 }
Beispiel #4
0
 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))));
 }
Beispiel #5
0
        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);
            }
        }