namespace Mosaic; /// /// Represents a flooring company /// public sealed class Company { private const int DefaultPiecesPerHour = 25; private readonly decimal _hourlyWage; private readonly decimal _m2Price; private readonly int _profitMargin; private readonly Worker[] _workers; /// /// Constructs a new instance based on the supplied configuration. /// /// The name of the company /// Base price per m2 of floor, independent of pattern type /// Hourly wage of each worker (paid by customer) /// Profit margin put on top of the production cost of the tiles /// Array of the company's employees public Company(string name, decimal m2Price, decimal hourlyWage, int profitMarginPercent, Worker[] workers) { // TODO } /// /// Gets the name of the company /// public string Name { get; } /// /// Calculates how much this specific company would charge when tasked with executing the /// supplied pattern. This includes production cost as well as work costs. /// /// Pattern to create /// Cost estimate for the supplied pattern public decimal GetCostEstimate(TilePattern pattern) { // TODO } /// /// Calculates how many pieces the workers of this company (together) are able to place per hour. /// This takes into account the complexity of the pattern as well as the working speed of /// each employee. /// /// Defines if the pattern is simple or complex /// Number of tiles this company is able to place per hour private double CalcPiecesPerHour(PatternStyle patternStyle) { // TODO } }