Esempio n. 1
0
        public void Handle(ProjectionManagementMessage.GetStatistics message)
        {
            var transactionFileHeadPosition = _checkpointForStatistics != null?_checkpointForStatistics.Read() : -1;

            if (!String.IsNullOrEmpty(message.Name))
            {
                var projection = GetProjection(message.Name);
                if (projection == null)
                {
                    message.Envelope.ReplyWith(new ProjectionManagementMessage.NotFound());
                }
                else
                {
                    message.Envelope.ReplyWith(
                        new ProjectionManagementMessage.Statistics(
                            new[] { projection.GetStatistics() }, transactionFileHeadPosition));
                }
            }
            else
            {
                var statuses = (from projectionNameValue in _projections
                                let projection = projectionNameValue.Value
                                                 where message.Mode == null || message.Mode == projection.GetMode()
                                                 let status = projection.GetStatistics()
                                                              select status).ToArray();
                message.Envelope.ReplyWith(
                    new ProjectionManagementMessage.Statistics(statuses, transactionFileHeadPosition));
            }
        }
Esempio n. 2
0
 public void Handle(ProjectionManagementMessage.GetStatistics message)
 {
     if (!string.IsNullOrEmpty(message.Name))
     {
         var projection = GetProjection(message.Name);
         if (projection == null)
         {
             message.Envelope.ReplyWith(new ProjectionManagementMessage.NotFound());
         }
         else
         {
             message.Envelope.ReplyWith(
                 new ProjectionManagementMessage.Statistics(
                     new[] { projection.GetStatistics() }));
         }
     }
     else
     {
         var statuses = (from projectionNameValue in _projections
                         let projection = projectionNameValue.Value
                                          where !projection.Deleted
                                          where message.Mode == null || message.Mode == projection.GetMode()
                                          let status = projection.GetStatistics()
                                                       select status).ToArray();
         message.Envelope.ReplyWith(
             new ProjectionManagementMessage.Statistics(statuses));
     }
 }