public List Serialize()

in src/Amazon.CloudWatch.EMF/Model/MetricsContext.cs [206:233]


        public List<string> Serialize()
        {
            var nodes = new List<RootNode>();
            if (_rootNode.AWS.MetricDirective.Metrics.Count <= Constants.MAX_METRICS_PER_EVENT)
            {
                nodes.Add(_rootNode);
            }
            else
            {
                // split the root nodes into multiple and serialize each
                var count = 0;
                while (count < _rootNode.AWS.MetricDirective.Metrics.Count)
                {
                    var metrics = _rootNode.AWS.MetricDirective.Metrics.Skip(count).Take(Constants.MAX_METRICS_PER_EVENT).ToList();
                    var node = _rootNode.DeepCloneWithNewMetrics(metrics);
                    nodes.Add(node);
                    count += Constants.MAX_METRICS_PER_EVENT;
                }
            }

            var results = new List<string>();
            foreach (var node in nodes)
            {
                results.Add(node.Serialize());
            }

            return results;
        }