Files
Std_Caisses/Caisses/GraphicalCheckout.cs
T

70 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Caisses
{
internal class GraphicalCheckout : Checkout
{
private Point _position;
private Color _color;
private Size _size;
private Rectangle _area;
private Random Random;
public Point Position { get => _position; set => _position = value; }
public Color Color { get => _color; set => _color = value; }
public Size Size { get => _size; set => _size = value; }
public Rectangle Area { get => _area; set => _area = value; }
public GraphicalCheckout(Point position,Rectangle area,int checkoutNumber)
{
Random = new Random();
Position = position;
Color = Color.FromArgb(Random.Next(0, 255), Random.Next(0, 255), Random.Next(0, 255));
Size = new Size(area.Width / checkoutNumber + 1,area.Height-area.Height/10);
}
public void Draw(Bitmap checkoutAreaImage)
{
int radius = Math.Min(Size.Width, Size.Height / MAX_CAPACITY);
Size clientSize = new Size(radius,radius);
int xOffset = Size.Width / 2 - radius / 2;
Graphics g = Graphics.FromImage(checkoutAreaImage);
//g.DrawRectangle(new Pen(Color.FromArgb(Random.Next(0,255),Random.Next(0,255),Random.Next(0,255))),new Rectangle(Position,Size));
g.DrawRectangle(new Pen(Color.Black),new Rectangle(Position,Size));
if (Open)
{
g.FillRectangle(new SolidBrush(Color.Green),new Rectangle(Position, Size));
//g.DrawString(Clients.Count().ToString(), new Font("Arial", 16), new SolidBrush(Color.White), new PointF(Position.X, Position.Y));
if(Clients.Count > 0)
{
for (int i = 0; i < Clients.Count; i++)
{
Point clientPos = new Point(Position.X + xOffset, (i) * clientSize.Height + Position.Y);
if (i == 0)
{
g.FillEllipse(Brushes.BlueViolet, new Rectangle(clientPos, clientSize));
g.DrawString(Clients[i].CheckoutTime.ToString(), new Font("Arial", 16), new SolidBrush(Color.White), clientPos);
}
else
{
g.FillEllipse(Brushes.Violet, new Rectangle(clientPos, clientSize));
}
}
}
}
else
{
g.FillRectangle(new SolidBrush(Color.Red), new Rectangle(Position, Size));
}
}
}
}