public const double Pi = 3.14159;
public static void Main()
CustList = PopulateData(3);
if(InsertResultIntoTheFile(CustList))
Console.WriteLine("Result has been saved in file.");
private static Customers[] PopulateData(int CustNumbers = 3)
Customers[] CustList = new Customers[CustNumbers];
CustList[0] = new Customers();
CustList[0].FirstName = "Simone";
CustList[0].LastName = "Hudson";
CustList[0].CustomerOrder.CustomerVehicle = new Automobile(2, 3, 3.5);
CustList[0].CustomerOrder.CustomerVehicle.Description = "BMW";
CustList[0].CustomerOrder.CustomerVehicle.HorsePower = 235;
CustList[0].CustomerOrder.CustomerVehicle.Wheels = 4;
CustList[0].CustomerOrder.Price = 65000;
CustList[0].CustomerOrder.Quantity = 1;
CustList[1] = new Customers();
CustList[1].FirstName = "Robert";
CustList[1].LastName = "Restler";
CustList[1].CustomerOrder.CustomerVehicle = new Motorcycle(3, 2);
CustList[1].CustomerOrder.CustomerVehicle.Description = "Honda";
CustList[1].CustomerOrder.CustomerVehicle.HorsePower = 65;
CustList[1].CustomerOrder.CustomerVehicle.Wheels = 2;
CustList[1].CustomerOrder.Price = 3000;
CustList[1].CustomerOrder.Quantity = 2;
CustList[2] = new Customers();
CustList[2].FirstName = "Dexter";
CustList[2].LastName = "Sanderz";
CustList[2].CustomerOrder.CustomerVehicle = new Automobile(4, 7, 3);
CustList[2].CustomerOrder.CustomerVehicle.Description = "Toyota";
CustList[2].CustomerOrder.CustomerVehicle.HorsePower = 430;
CustList[2].CustomerOrder.CustomerVehicle.Wheels = 4;
CustList[2].CustomerOrder.Price = 43000;
CustList[2].CustomerOrder.Quantity = 1;
private static bool InsertResultIntoTheFile(Customers[] CustList, string FilePath = @"D:\Assignmet3_SalmanRastgou.txt")
string[] CustInfo = new string[CustList.Length * 3];
for (int i = 0; i < CustList.Length; i++)
CustInfo[j++] = String.Format("{0:10} {1:20}", CustList[i].FirstName, CustList[i].LastName);
CustInfo[j++] = String.Format("Vehicle Type: {0} - Make: {1} - Price: {2:C} - Quantity: {3} - Cargo Capacity: {4}"
, (CustList[i].CustomerOrder.CustomerVehicle as Vehicle) is Automobile ? "Automobile" : "Motorcycle"
, CustList[i].CustomerOrder.CustomerVehicle.Description
, CustList[i].CustomerOrder.Price, CustList[i].CustomerOrder.Quantity
, CustList[i].CustomerOrder.CustomerVehicle.CargoCapacity.ToString());
CustInfo[j++] = string.Format("----------------------------");
File.WriteAllLines(FilePath, CustInfo);
File.AppendAllText(FilePath, ">>> Salman Rastgou - N01157264 - Assignment3 <<<");
Console.WriteLine(e.Message);
public abstract class Vehicle
private int _horsePower = 0;
public virtual int Wheels { get; set; }
public string Description { get; set; }
public virtual double CargoCapacity { get { return CargoCapacity; } }
public class Automobile : Vehicle
private double _CargoCapacity = 0;
public override double CargoCapacity { get { return _CargoCapacity; } }
public override int Wheels
public override string ToString()
public Automobile(double _height, double _width, double _length)
_CargoCapacity = _height * _width * _length;
public class Motorcycle : Vehicle
private double _CargoCapacity = 0;
public override double CargoCapacity { get { return _CargoCapacity; } }
public override int Wheels
public override string ToString()
public Motorcycle(double _radius, double _height)
_CargoCapacity = Program.Pi * ((_radius * _radius) * _height) * 2;
public string FirstName { get; set; }
public string LastName { get; set; }
public Order CustomerOrder { get; set; }
CustomerOrder = new Order();
private int _quantity = 0;
private decimal _price = 0;
public Vehicle CustomerVehicle { get; set; }