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)); } }
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)); } }