Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions Order.Management/Circle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,31 @@ namespace Order.Management
{
class Circle : Shape
{
public int circlePrice = 3;
private const int circlePrice = 3;
public Circle(int red, int blue, int yellow)
{
Name = "Circle";
base.Price = circlePrice;
Price = circlePrice;
AdditionalCharge = 1;
base.NumberOfRedShape = red;
base.NumberOfBlueShape = blue;
base.NumberOfYellowShape = yellow;
NumberOfRedShape = red;
NumberOfBlueShape = blue;
NumberOfYellowShape = yellow;
}
public override int Total()
{
return RedCirclesTotal() + BlueCirclesTotal() + YellowCirclesTotal();
}


public int RedCirclesTotal()
private int RedCirclesTotal()
{
return (base.NumberOfRedShape * Price);
}
public int BlueCirclesTotal()
private int BlueCirclesTotal()
{
return (base.NumberOfBlueShape * Price);
}
public int YellowCirclesTotal()
private int YellowCirclesTotal()
{
return (base.NumberOfYellowShape * Price);
}
Expand Down
42 changes: 19 additions & 23 deletions Order.Management/CuttingListReport.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,50 +6,47 @@ namespace Order.Management
{
class CuttingListReport : Order
{
public int tableWidth = 20;
private readonly int TableWidth = 20;
public CuttingListReport(string customerName, string customerAddress, string dueDate, List<Shape> shapes)
{
base.CustomerName = customerName;
base.Address = customerAddress;
base.DueDate = dueDate;
base.OrderedBlocks = shapes;
CustomerName = customerName;
Address = customerAddress;
DueDate = dueDate;
OrderedBlocks = shapes;
}

public override void GenerateReport()
{
Console.WriteLine("\nYour cutting list has been generated: ");
Console.WriteLine(base.ToString());
generateTable();
Console.WriteLine(ToString());
GenerateTable();
}
public void generateTable()

private void GenerateTable()
{
PrintLine();
PrintRow(" ", " Qty ");
PrintLine();
PrintRow("Square",base.OrderedBlocks[0].TotalQuantityOfShape().ToString());
PrintRow("Triangle", base.OrderedBlocks[1].TotalQuantityOfShape().ToString());
PrintRow("Circle", base.OrderedBlocks[2].TotalQuantityOfShape().ToString());
PrintRow("Square",OrderedBlocks[0].TotalQuantityOfShape().ToString());
PrintRow("Triangle", OrderedBlocks[1].TotalQuantityOfShape().ToString());
PrintRow("Circle", OrderedBlocks[2].TotalQuantityOfShape().ToString());
PrintLine();
}
public void PrintLine()

private void PrintLine()
{
Console.WriteLine(new string('-', tableWidth));
Console.WriteLine(new string('-', TableWidth));
}

public void PrintRow(params string[] columns)
private void PrintRow(params string[] columns)
{
int width = (tableWidth - columns.Length) / columns.Length;
string row = "|";

foreach (string column in columns)
{
row += AlignCentre(column, width) + "|";
}
var width = (TableWidth - columns.Length) / columns.Length;
var row = columns.Aggregate("|", (current, column) => current + (AlignCentre(column, width) + "|"));

Console.WriteLine(row);
}

public string AlignCentre(string text, int width)
private static string AlignCentre(string text, int width)
{
text = text.Length > width ? text.Substring(0, width - 3) + "..." : text;

Expand All @@ -63,6 +60,5 @@ public string AlignCentre(string text, int width)
}
}


}
}
63 changes: 29 additions & 34 deletions Order.Management/InvoiceReport.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,82 +6,77 @@ namespace Order.Management
{
class InvoiceReport : Order
{
public int tableWidth = 73;
private const int TableWidth = 73;
public InvoiceReport(string customerName, string customerAddress, string dueDate, List<Shape> shapes)
{
base.CustomerName = customerName;
base.Address = customerAddress;
base.DueDate = dueDate;
base.OrderedBlocks = shapes;
CustomerName = customerName;
Address = customerAddress;
DueDate = dueDate;
OrderedBlocks = shapes;
}

public override void GenerateReport()
{
Console.WriteLine("\nYour invoice report has been generated: ");
Console.WriteLine(base.ToString());
Console.WriteLine(ToString());
GenerateTable();
OrderSquareDetails();
OrderTriangleDetails();
OrderCircleDetails();
RedPaintSurcharge();
}

public void RedPaintSurcharge()
private void RedPaintSurcharge()
{
Console.WriteLine("Red Color Surcharge " + TotalAmountOfRedShapes() + " @ $" + base.OrderedBlocks[0].AdditionalCharge + " ppi = $" + TotalPriceRedPaintSurcharge());
Console.WriteLine("Red Color Surcharge " + TotalAmountOfRedShapes() + " @ $" + OrderedBlocks[0].AdditionalCharge + " ppi = $" + TotalPriceRedPaintSurcharge());
}

public int TotalAmountOfRedShapes()
private int TotalAmountOfRedShapes()
{
return base.OrderedBlocks[0].NumberOfRedShape + base.OrderedBlocks[1].NumberOfRedShape +
base.OrderedBlocks[2].NumberOfRedShape;
return OrderedBlocks[0].NumberOfRedShape + OrderedBlocks[1].NumberOfRedShape +
OrderedBlocks[2].NumberOfRedShape;
}

public int TotalPriceRedPaintSurcharge()
private int TotalPriceRedPaintSurcharge()
{
return TotalAmountOfRedShapes() * base.OrderedBlocks[0].AdditionalCharge;
return TotalAmountOfRedShapes() * OrderedBlocks[0].AdditionalCharge;
}
public void GenerateTable()
private void GenerateTable()
{
PrintLine();
PrintRow(" ", " Red ", " Blue ", " Yellow ");
PrintLine();
PrintRow("Square", base.OrderedBlocks[0].NumberOfRedShape.ToString(), base.OrderedBlocks[0].NumberOfBlueShape.ToString(), base.OrderedBlocks[0].NumberOfYellowShape.ToString());
PrintRow("Triangle", base.OrderedBlocks[1].NumberOfRedShape.ToString(), base.OrderedBlocks[1].NumberOfBlueShape.ToString(), base.OrderedBlocks[1].NumberOfYellowShape.ToString());
PrintRow("Circle", base.OrderedBlocks[2].NumberOfRedShape.ToString(), base.OrderedBlocks[2].NumberOfBlueShape.ToString(), base.OrderedBlocks[2].NumberOfYellowShape.ToString());
PrintRow("Square", OrderedBlocks[0].NumberOfRedShape.ToString(), OrderedBlocks[0].NumberOfBlueShape.ToString(), OrderedBlocks[0].NumberOfYellowShape.ToString());
PrintRow("Triangle", OrderedBlocks[1].NumberOfRedShape.ToString(), OrderedBlocks[1].NumberOfBlueShape.ToString(), OrderedBlocks[1].NumberOfYellowShape.ToString());
PrintRow("Circle", OrderedBlocks[2].NumberOfRedShape.ToString(), OrderedBlocks[2].NumberOfBlueShape.ToString(), OrderedBlocks[2].NumberOfYellowShape.ToString());
PrintLine();
}
public void OrderSquareDetails()
private void OrderSquareDetails()
{
Console.WriteLine("\nSquares " + base.OrderedBlocks[0].TotalQuantityOfShape() + " @ $" + base.OrderedBlocks[0].Price + " ppi = $" + base.OrderedBlocks[0].Total());
Console.WriteLine("\nSquares " + OrderedBlocks[0].TotalQuantityOfShape() + " @ $" + OrderedBlocks[0].Price + " ppi = $" + OrderedBlocks[0].Total());
}
public void OrderTriangleDetails()
private void OrderTriangleDetails()
{
Console.WriteLine("Triangles " + base.OrderedBlocks[1].TotalQuantityOfShape() + " @ $" + base.OrderedBlocks[1].Price + " ppi = $" + base.OrderedBlocks[1].Total());
Console.WriteLine("Triangles " + OrderedBlocks[1].TotalQuantityOfShape() + " @ $" + OrderedBlocks[1].Price + " ppi = $" + OrderedBlocks[1].Total());
}
public void OrderCircleDetails()
private void OrderCircleDetails()
{
Console.WriteLine("Circles " + base.OrderedBlocks[2].TotalQuantityOfShape() + " @ $" + base.OrderedBlocks[2].Price + " ppi = $" + base.OrderedBlocks[2].Total());
Console.WriteLine("Circles " + OrderedBlocks[2].TotalQuantityOfShape() + " @ $" + OrderedBlocks[2].Price + " ppi = $" + OrderedBlocks[2].Total());
}
public void PrintLine()
private void PrintLine()
{
Console.WriteLine(new string('-', tableWidth));
Console.WriteLine(new string('-', TableWidth));
}

public void PrintRow(params string[] columns)
private void PrintRow(params string[] columns)
{
int width = (tableWidth - columns.Length) / columns.Length;
string row = "|";

foreach (string column in columns)
{
row += AlignCentre(column, width) + "|";
}
var width = (TableWidth - columns.Length) / columns.Length;
var row = columns.Aggregate("|", (current, column) => current + (AlignCentre(column, width) + "|"));

Console.WriteLine(row);
}

public string AlignCentre(string text, int width)
private static string AlignCentre(string text, int width)
{
text = text.Length > width ? text.Substring(0, width - 3) + "..." : text;

Expand Down
12 changes: 6 additions & 6 deletions Order.Management/Order.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ namespace Order.Management
{
abstract class Order
{
public string CustomerName { get; set; }
public string Address { get; set; }
public string DueDate { get; set; }
public int OrderNumber { get; set; }
public List<Shape> OrderedBlocks { get; set; }
protected string CustomerName { get; set; }
protected string Address { get; set; }
protected string DueDate { get; set; }
private int OrderNumber { get; set; }
protected List<Shape> OrderedBlocks { get; set; }

public abstract void GenerateReport();

public string ToString()
public override string ToString()
{
return "\nName: " + CustomerName + " Address: " + Address + " Due Date: " + DueDate + " Order #: " + OrderNumber;
}
Expand Down
39 changes: 17 additions & 22 deletions Order.Management/PaintingReport.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,51 +6,46 @@ namespace Order.Management
{
class PaintingReport : Order
{
public int tableWidth = 73;
private const int TableWidth = 73;
public PaintingReport(string customerName, string customerAddress, string dueDate, List<Shape> shapes)
{
base.CustomerName = customerName;
base.Address = customerAddress;
base.DueDate = dueDate;
base.OrderedBlocks = shapes;
CustomerName = customerName;
Address = customerAddress;
DueDate = dueDate;
OrderedBlocks = shapes;
}
public override void GenerateReport()
{
Console.WriteLine("\nYour painting report has been generated: ");
Console.WriteLine(base.ToString());
generateTable();
Console.WriteLine(ToString());
GenerateTable();
}

public void generateTable()
private void GenerateTable()
{
PrintLine();
PrintRow(" ", " Red ", " Blue ", " Yellow ");
PrintLine();
PrintRow("Square", base.OrderedBlocks[0].NumberOfRedShape.ToString(), base.OrderedBlocks[0].NumberOfBlueShape.ToString(), base.OrderedBlocks[0].NumberOfYellowShape.ToString());
PrintRow("Triangle", base.OrderedBlocks[1].NumberOfRedShape.ToString(), base.OrderedBlocks[1].NumberOfBlueShape.ToString(), base.OrderedBlocks[1].NumberOfYellowShape.ToString());
PrintRow("Circle", base.OrderedBlocks[2].NumberOfRedShape.ToString(), base.OrderedBlocks[2].NumberOfBlueShape.ToString(), base.OrderedBlocks[2].NumberOfYellowShape.ToString());
PrintRow("Square", OrderedBlocks[0].NumberOfRedShape.ToString(), OrderedBlocks[0].NumberOfBlueShape.ToString(), OrderedBlocks[0].NumberOfYellowShape.ToString());
PrintRow("Triangle", OrderedBlocks[1].NumberOfRedShape.ToString(), OrderedBlocks[1].NumberOfBlueShape.ToString(), OrderedBlocks[1].NumberOfYellowShape.ToString());
PrintRow("Circle", OrderedBlocks[2].NumberOfRedShape.ToString(), OrderedBlocks[2].NumberOfBlueShape.ToString(), OrderedBlocks[2].NumberOfYellowShape.ToString());
PrintLine();
}

public void PrintLine()
private static void PrintLine()
{
Console.WriteLine(new string('-', tableWidth));
Console.WriteLine(new string('-', TableWidth));
}

public void PrintRow(params string[] columns)
private static void PrintRow(params string[] columns)
{
int width = (tableWidth - columns.Length) / columns.Length;
string row = "|";

foreach (string column in columns)
{
row += AlignCentre(column, width) + "|";
}
var width = (TableWidth - columns.Length) / columns.Length;
var row = columns.Aggregate("|", (current, column) => current + (AlignCentre(column, width) + "|"));

Console.WriteLine(row);
}

public string AlignCentre(string text, int width)
private static string AlignCentre(string text, int width)
{
text = text.Length > width ? text.Substring(0, width - 3) + "..." : text;

Expand Down
Loading