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