using System.Drawing;

namespace Emby.Drawing.GDI
{
    public class UnplayedCountIndicator
    {
        private const int IndicatorHeight = 41;
        public const int IndicatorWidth = 41;
        private const int OffsetFromTopRightCorner = 10;

        public void DrawUnplayedCountIndicator(Graphics graphics, Size imageSize, int count)
        {
            var x = imageSize.Width - IndicatorWidth - OffsetFromTopRightCorner;

            using (var backdroundBrush = new SolidBrush(Color.FromArgb(225, 82, 181, 75)))
            {
                graphics.FillEllipse(backdroundBrush, x, OffsetFromTopRightCorner, IndicatorWidth, IndicatorHeight);

                var text = count.ToString();

                x = imageSize.Width - IndicatorWidth - OffsetFromTopRightCorner;
                var y = OffsetFromTopRightCorner + 6;
                var fontSize = 24;

                if (text.Length == 1)
                {
                    x += 10;
                }
                else if (text.Length == 2)
                {
                    x += 3;
                }
                else if (text.Length == 3)
                {
                    x += 1;
                    y += 1;
                    fontSize = 20;
                }

                using (var font = new Font("Sans-Serif", fontSize, FontStyle.Regular, GraphicsUnit.Pixel))
                {
                    using (var fontBrush = new SolidBrush(Color.White))
                    {
                        graphics.DrawString(text, font, fontBrush, x, y);
                    }
                }
            }
        }
    }
}