Exemple #1
0
        public static MeasureValueHolder operator /(MeasureValueHolder first, int c)
        {
            MeasureValueHolder final = new MeasureValueHolder(first.Configuration);

            foreach (var listItem in first.MeasuredValuesList)
            {
                final.MeasuredValuesList.Add(listItem / c);
            }

            foreach (var item in first.ContainerMeasureValuesList)
            {
                final.ContainerMeasureValuesList.Add(item.Key, item.Value / c);
            }
            foreach (var item in first.HostMeasureValuesList)
            {
                final.HostMeasureValuesList.Add(item / c);
            }
            foreach (var item in first.PullsPerImage)
            {
                final.PullsPerImage.Add(item.Key, item.Value / c);
            }

            return(final);
        }
Exemple #2
0
        public static MeasureValueHolder operator +(MeasureValueHolder first, MeasureValueHolder second)
        {
            if (first.Name != second.Name)
            {
                throw new ArgumentOutOfRangeException();
            }
            MeasureValueHolder final = new MeasureValueHolder(first.Configuration);

            //Prepare for first
            foreach (var listItem in first.MeasuredValuesList)
            {
                final.MeasuredValuesList.Add(new MeasuresValues(listItem));
            }
            //Hosts
            foreach (var item in first.HostMeasureValuesList)
            {
                final.HostMeasureValuesList.Add(new HostMeasureValues(item));
            }

            //Container Migrations
            foreach (var item in first.ContainerMeasureValuesList)
            {
                final.ContainerMeasureValuesList.Add(item.Key, item.Value);
            }
            //Images
            foreach (var item in first.PullsPerImage)
            {
                final.PullsPerImage.Add(item.Key, item.Value);
            }



            //prepare of second
            for (int i = 0; i < second.MeasuredValuesList.Count; i++)
            {
                if (i < final.MeasuredValuesList.Count)
                {
                    final.MeasuredValuesList[i] += second.MeasuredValuesList[i];
                }
                else
                {
                    final.MeasuredValuesList.Add(new MeasuresValues(second.MeasuredValuesList[i]));
                }
            }
            //hosts
            for (int i = 0; i < second.HostMeasureValuesList.Count; i++)
            {
                if (i < final.HostMeasureValuesList.Count)
                {
                    final.HostMeasureValuesList[i] += second.HostMeasureValuesList[i];
                }
                else
                {
                    final.HostMeasureValuesList.Add(new HostMeasureValues(second.HostMeasureValuesList[i]));
                }
            }
            //contianers
            foreach (var item in second.ContainerMeasureValuesList)
            {
                if (final.ContainerMeasureValuesList.ContainsKey(item.Key))
                {
                    final.ContainerMeasureValuesList[item.Key] += item.Value;
                }
                else
                {
                    final.ContainerMeasureValuesList.Add(item.Key, item.Value);
                }
            }

            //Images
            foreach (var item in second.PullsPerImage)
            {
                if (final.PullsPerImage.ContainsKey(item.Key))
                {
                    final.PullsPerImage[item.Key] += item.Value;
                }
                else
                {
                    final.PullsPerImage.Add(item.Key, item.Value);
                }
            }


            return(final);
        }