Пример #1
0
        public void Handle(ProjectionManagementMessage.GetState message)
        {
            //TODO: allow requesting valid only state
            var state = GetProjectionState();

            message.Envelope.ReplyWith(new ProjectionManagementMessage.ProjectionState(message.Name, state));
        }
Пример #2
0
 public void Handle(ProjectionManagementMessage.GetState message)
 {
     if (_state == ManagedProjectionState.Running)
     {
         var needRequest = false;
         if (_stateRequests == null)
         {
             _stateRequests = new Dictionary <string, List <IEnvelope> >();
         }
         List <IEnvelope> partitionRequests;
         if (!_stateRequests.TryGetValue(message.Partition, out partitionRequests))
         {
             partitionRequests = new List <IEnvelope>();
             _stateRequests.Add(message.Partition, partitionRequests);
             needRequest = true;
         }
         partitionRequests.Add(message.Envelope);
         if (needRequest)
         {
             _coreQueue.Publish(
                 new CoreProjectionManagementMessage.GetState(
                     new PublishEnvelope(_inputQueue), _id, message.Partition));
         }
     }
     else
     {
         //TODO: report right state here
         message.Envelope.ReplyWith(
             new ProjectionManagementMessage.ProjectionState(message.Name, "*** UNKNOWN ***"));
     }
 }
Пример #3
0
        public void Handle(ProjectionManagementMessage.GetState message)
        {
            var projection = GetProjection(message.Name);

            if (projection == null)
            {
                message.Envelope.ReplyWith(new ProjectionManagementMessage.NotFound());
            }
            else
            {
                projection.Handle(message);
            }
        }
Пример #4
0
 public void Handle(ProjectionManagementMessage.GetState message)
 {
     _lastAccessed = _timeProvider.Now;
     if (_state >= ManagedProjectionState.Stopped)
     {
         _getStateDispatcher.Publish(
             new CoreProjectionManagementMessage.GetState(
                 new PublishEnvelope(_inputQueue), Guid.NewGuid(), Id, message.Partition),
             m =>
             message.Envelope.ReplyWith(
                 new ProjectionManagementMessage.ProjectionState(_name, m.Partition, m.State, m.Position)));
     }
     else
     {
         message.Envelope.ReplyWith(
             new ProjectionManagementMessage.ProjectionState(
                 message.Name, message.Partition, "*** UNKNOWN ***", position: null));
     }
 }
Пример #5
0
 public void Handle(ProjectionManagementMessage.GetState message)
 {
     if (_state == ManagedProjectionState.Running)
     {
         var needRequest = _stateRequests == null;
         if (_stateRequests == null)
         {
             _stateRequests = new List <IEnvelope>();
         }
         _stateRequests.Add(message.Envelope);
         if (needRequest)
         {
             _coreQueue.Publish(new ProjectionMessage.Projections.Management.GetState(new PublishEnvelope(_inputQueue), _id));
         }
     }
     else
     {
         //TODO: report right state here
         message.Envelope.ReplyWith(new ProjectionManagementMessage.ProjectionState(message.Name, "*** UNKNOWN ***"));
     }
 }