internal static QueueDigestPresentationObject Create(TransportQueueStatistics mtrtQueueAggregate, QueueDigestGroupBy groupBy) { QueueDigestPresentationObject queueDigestPresentationObject = new QueueDigestPresentationObject(); queueDigestPresentationObject.DeferredMessageCount = mtrtQueueAggregate.DeferredMessageCount; queueDigestPresentationObject.IncomingRate = mtrtQueueAggregate.IncomingRate; queueDigestPresentationObject.LockedMessageCount = mtrtQueueAggregate.LockedMessageCount; queueDigestPresentationObject.MessageCount = mtrtQueueAggregate.MessageCount; queueDigestPresentationObject.OutgoingRate = mtrtQueueAggregate.OutgoingRate; QueueDigestPresentationObject.SetGroupByValue(queueDigestPresentationObject, mtrtQueueAggregate, groupBy); if (mtrtQueueAggregate.QueueLogs != null) { queueDigestPresentationObject.Details = new List <QueueDigestDetails>(); foreach (TransportQueueLog details in mtrtQueueAggregate.QueueLogs) { queueDigestPresentationObject.Details.Add(new QueueDigestDetails(details)); } } queueDigestPresentationObject.Details.Sort(new Comparison <QueueDigestDetails>(QueueDigestPresentationObject.CompareQueueDigestDetails)); return(queueDigestPresentationObject); }
private static void SetGroupByValue(QueueDigestPresentationObject result, TransportQueueStatistics mtrtResponse, QueueDigestGroupBy groupBy) { string groupByValue = string.Empty; switch (groupBy) { case QueueDigestGroupBy.NextHopDomain: groupByValue = mtrtResponse.NextHopDomain; break; case QueueDigestGroupBy.NextHopCategory: groupByValue = mtrtResponse.NextHopCategory; break; case QueueDigestGroupBy.NextHopKey: groupByValue = mtrtResponse.NextHopKey; break; case QueueDigestGroupBy.DeliveryType: groupByValue = mtrtResponse.DeliveryType; break; case QueueDigestGroupBy.Status: groupByValue = mtrtResponse.Status; break; case QueueDigestGroupBy.RiskLevel: groupByValue = mtrtResponse.RiskLevel; break; case QueueDigestGroupBy.LastError: groupByValue = mtrtResponse.LastError; break; case QueueDigestGroupBy.ServerName: groupByValue = mtrtResponse.ServerName; break; case QueueDigestGroupBy.OutboundIPPool: groupByValue = mtrtResponse.OutboundIPPool; break; default: throw new ArgumentOutOfRangeException("groupBy"); } result.GroupByValue = groupByValue; }