/// <summary>
        /// Get interior BrushInfo points.
        /// </summary>
        /// <param name="curValue">The current value of the cell.</param>
        /// <param name="sparkline">The sparkline</param>
        /// <param name="isNegative">The value indicating whether the source value is negative or not.</param>
        /// <returns>returns the BrushInfo interior</returns>
        private BrushInfo GetInteriorColumn(double curValue, Syncfusion.Windows.Forms.Chart.SparkLine sparkline, bool isNegative)
        {
            BrushInfo interior = sparkline.ColumnStyle.ColumnColor;

            if (Convert.ToDouble(curValue) == sparkline.StartPoint && sparkline.Markers.ShowStartPoint)
            {
                interior = sparkline.Markers.StartPointColor;
            }
            if (Convert.ToDouble(curValue) == sparkline.EndPoint && sparkline.Markers.ShowEndPoint)
            {
                interior = sparkline.Markers.EndPointColor;
            }

            int count = sparkline.GetNegativePoint().GetUpperBound(0);

            if (isNegative)
            {
                for (int index = 0; index <= count; index++)
                {
                    if (Convert.ToDouble(curValue) == (double)sparkline.GetNegativePoint().GetValue(index) && sparkline.Markers.ShowNegativePoint)
                    {
                        interior = sparkline.Markers.NegativePointColor;
                    }
                }
            }

            if (Convert.ToDouble(curValue) == sparkline.HighPoint && sparkline.Markers.ShowHighPoint)
            {
                interior = sparkline.Markers.HighPointColor;
            }
            if (Convert.ToDouble(curValue) == sparkline.LowPoint && sparkline.Markers.ShowLowPoint)
            {
                interior = sparkline.Markers.LowPointColor;
            }
            return(interior);
        }
        ///<summary>
        ///Renders the line type Sparkline.
        ///</summary>
        ///<param name="graphics">The <see cref="System.Windows.Forms.PaintEventArgs"/> instance containing the event data.</param>
        ///<param name="sparkline">The Sparkline.</param>
        public void DrawSparkline(Graphics graphics, Syncfusion.Windows.Forms.Chart.SparkLine sparkline)
        {
            SparkLineSource sparkLineSource = new SparkLineSource();
            int             areaMarginX = 3;
            int             areaMarginY = 3;
            double          firstPointX = 0, firstPointY = 0, secondPointX = 0, secondPointY = 0;
            double          areaWidth  = sparkline.ControlWidth - areaMarginX * areaMarginX;
            double          areaHeight = sparkline.ControlHeight - areaMarginY * areaMarginY;

            var sourceList = (List <object>)sparkLineSource.GetSourceList(sparkline.Source, sparkline);

            if (sourceList.Count == 0)
            {
                return;
            }

            double lineInterval = areaWidth / (sourceList.Count);
            double lineRange    = sparkline.HighPoint - sparkline.LowPoint;

            for (int i = 0; i < sourceList.Count; i++)
            {
                double Value = Convert.ToDouble(sourceList[i]) - sparkline.LowPoint;

                secondPointX = firstPointX;
                secondPointY = firstPointY;

                firstPointX = this.Sparkline.Location.X + (lineInterval * i + (lineInterval / 2));
                firstPointY = this.Sparkline.Location.Y + (areaHeight - (areaHeight * (Value / lineRange)));

                if (i > 0)
                {
                    graphics.DrawLine(new Pen(sparkline.LineStyle.LineColor, 1), (float)(areaMarginX + firstPointX), (float)(areaMarginY + firstPointY), (float)(areaMarginX + secondPointX), (float)(areaMarginY + secondPointY));
                }

                if (sparkline.Markers.ShowMarker)
                {
                    graphics.FillEllipse(new SolidBrush(sparkline.Markers.MarkerColor.BackColor), (float)(areaMarginX + firstPointX - 2), (float)(areaMarginY + firstPointY - 2), 5, 5);
                }
                if (Convert.ToDouble(sourceList[i]) == sparkline.StartPoint && sparkline.Markers.ShowStartPoint)
                {
                    graphics.FillEllipse(new SolidBrush(sparkline.Markers.StartPointColor.BackColor), (float)(areaMarginX + firstPointX - 2), (float)(areaMarginY + firstPointY - 2), 5, 5);
                }
                if (Convert.ToDouble(sourceList[i]) == sparkline.EndPoint && sparkline.Markers.ShowEndPoint)
                {
                    graphics.FillEllipse(new SolidBrush(sparkline.Markers.EndPointColor.BackColor), (float)(areaMarginX + firstPointX - 2), (float)(areaMarginY + firstPointY - 2), 5, 5);
                }

                if (sparkline.GetNegativePoint() != null)
                {
                    int count = sparkline.GetNegativePoint().GetUpperBound(0);
                    for (int k = 0; k <= count; k++)
                    {
                        if (Convert.ToDouble(sourceList[i]) == (double)sparkline.GetNegativePoint().GetValue(k) && sparkline.Markers.ShowNegativePoint)
                        {
                            graphics.FillEllipse(new SolidBrush(sparkline.Markers.NegativePointColor.BackColor), (float)(areaMarginX + firstPointX - 2), (float)(areaMarginY + firstPointY - 2), 5, 5);
                        }
                    }
                }

                if (Convert.ToDouble(sourceList[i]) == sparkline.HighPoint && sparkline.Markers.ShowHighPoint)
                {
                    graphics.FillEllipse(new SolidBrush(sparkline.Markers.HighPointColor.BackColor), (float)(areaMarginX + firstPointX - 2), (float)(areaMarginY + firstPointY - 2), 5, 5);
                }
                if (Convert.ToDouble(sourceList[i]) == sparkline.LowPoint && sparkline.Markers.ShowLowPoint)
                {
                    graphics.FillEllipse(new SolidBrush(sparkline.Markers.LowPointColor.BackColor), (float)(areaMarginX + firstPointX - 2), (float)(areaMarginY + firstPointY - 2), 5, 5);
                }
            }
        }