public static void PrepareData(Series series, IServiceContainer serviceContainer)
 {
     if (string.Compare(series.ChartTypeName, "Renko", StringComparison.OrdinalIgnoreCase) == 0 && series.IsVisible())
     {
         Chart chart = (Chart)serviceContainer.GetService(typeof(Chart));
         if (chart == null)
         {
             throw new InvalidOperationException(SR.ExceptionRenkoNullReference);
         }
         ChartArea chartArea = chart.ChartAreas[series.ChartArea];
         foreach (Series item in chart.Series)
         {
             if (item.IsVisible() && item != series && chartArea == chart.ChartAreas[item.ChartArea])
             {
                 throw new InvalidOperationException(SR.ExceptionRenkoCanNotCobine);
             }
         }
         Series series3 = new Series("RENKO_ORIGINAL_DATA_" + series.Name, series.YValuesPerPoint);
         series3.Enabled      = false;
         series3.ShowInLegend = false;
         chart.Series.Add(series3);
         foreach (DataPoint point in series.Points)
         {
             series3.Points.Add(point);
         }
         series.Points.Clear();
         if (series.IsAttributeSet("TempDesignData"))
         {
             ((DataPointAttributes)series3)["TempDesignData"] = "true";
         }
         ((DataPointAttributes)series)["OldXValueIndexed"]   = series.XValueIndexed.ToString(CultureInfo.InvariantCulture);
         ((DataPointAttributes)series)["OldYValuesPerPoint"] = series.YValuesPerPoint.ToString(CultureInfo.InvariantCulture);
         series.ChartType       = SeriesChartType.RangeColumn;
         series.XValueIndexed   = true;
         series.YValuesPerPoint = 2;
         if (series.ChartArea.Length > 0 && series.IsXValueDateTime())
         {
             Axis axis = chartArea.GetAxis(AxisName.X, series.XAxisType, series.XSubAxisName);
             if (axis.Interval == 0.0 && axis.IntervalType == DateTimeIntervalType.Auto)
             {
                 bool   flag = false;
                 double num  = 1.7976931348623157E+308;
                 double num2 = -1.7976931348623157E+308;
                 foreach (DataPoint point2 in series3.Points)
                 {
                     if (!point2.Empty)
                     {
                         if (point2.XValue != 0.0)
                         {
                             flag = true;
                         }
                         if (point2.XValue > num2)
                         {
                             num2 = point2.XValue;
                         }
                         if (point2.XValue < num)
                         {
                             num = point2.XValue;
                         }
                     }
                 }
                 if (flag)
                 {
                     ((DataPointAttributes)series)["OldAutomaticXAxisInterval"] = "true";
                     DateTimeIntervalType intervalType = DateTimeIntervalType.Auto;
                     axis.interval     = ((AxisScale)axis).CalcInterval(num, num2, true, out intervalType, series.XValueType);
                     axis.intervalType = intervalType;
                 }
             }
         }
         RenkoChart.FillRenkoData(series, series3);
     }
 }