using System;

using System.IO;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace applicationName

{

public class Program

{

static void Main(string[] args)

{

//Declare new lists based on the discounts each customer will receive

CustomerGroup noDiscountCg = new CustomerGroup();

CustomerGroup lowDiscountCg = new CustomerGroup();

CustomerGroup highDiscountCg = new CustomerGroup();

List<Customer> unsortedCustomer = new List<Customer>();

//Adding customers to the unsorted list

unsortedCustomer.Add(new Customer(123456, "Thom Yorke", "215 Chestnut Lane", "thomyorke@radiohead.com", 2569876548, new DateTime(2013, 1, 9), 500));

unsortedCustomer.Add(new Customer(852963, "Annie Clark", "879 Hickory Road", "annieclark@gmail.com", 3135453404, new DateTime(2002, 11, 12), 200));

unsortedCustomer.Add(new Customer(147987, "Claire Boucher", "200 Dogwood Drive", "claireboucher@gmail.com", 9635874102, new DateTime(2000, 10, 11), 10));

unsortedCustomer.Add(new Customer(357951, "Sophie Hutchings", "963 Highview Court", "sophiehutchings@gmail.com", 2510147756, new DateTime(2007, 8, 8), 400));

unsortedCustomer.Add(new Customer(789987, "Danny Teague", "8410 Greensboro Road ", "teague@gmail.com", 2315648974, new DateTime(2011, 4, 4), 60));

unsortedCustomer.Add(new Customer(753963, "Brian McBride", "444 Buena Vista Court", "brianmcbride1@gmail.com", 7899877410, new DateTime(2003, 10, 10), 560));

unsortedCustomer.Add(new Customer(200132, "David Bowie", "921 Washington Ave", "davidbowie@gmail.com", 4566541230, new DateTime(2000, 1, 1), 910));

unsortedCustomer.Add(new Customer(452631, "Aidan Baker", "741 Palm Springs Road", "abaker@gmail.com", 1233210123, new DateTime(2005, 5, 5), 700));

unsortedCustomer.Add(new Customer(687952, "Ben Frost", "563 Cedar Lane", "benfrost@gmail.com", 8256987654, new DateTime(2013, 2, 9), 890));

unsortedCustomer.Add(new Customer(985204, "Bill Laswell", "10 Pennsylvania Ave", "blaswell@gmail.com", 3413545340, new DateTime(2004, 12, 12), 201));

unsortedCustomer.Add(new Customer(002154, "Claude Debussy", "852 Stone Brook Road", "cdebussy@gmail.com", 5874963102, new DateTime(2001, 2, 5), 101));

unsortedCustomer.Add(new Customer(311159, "James Blake", "700 Mountain View Drive", "jamesblake@gmail.com", 2477510156, new DateTime(2007, 7, 3), 630));

//Loop that sorts based on discounts given number of average transactions

//Assigns each unsorted customer into a new group based on the discount they'll receive

foreach (Customer temporary in unsortedCustomer)

{

if (temporary.CalcTransaction() <= 3)

{

noDiscountCg.CustomerList.Add(temporary);

}

if (temporary.CalcTransaction() > 6)

{

lowDiscountCg.CustomerList.Add(temporary);

}

if (temporary.CalcTransaction() > 15)

{

highDiscountCg.CustomerList.Add(temporary);

}

}

//Assign unique ID's to each customer group

noDiscountCg.GroupID = 200;

lowDiscountCg.GroupID = 500;

highDiscountCg.GroupID = 700;

FileStream ostrm;

StreamWriter writer;

TextWriter oldOut = Console.Out;

try

{

ostrm = new FileStream("./sorted_customer_list.txt", FileMode.OpenOrCreate, FileAccess.Write);

writer = new StreamWriter(ostrm);

}

catch (Exception e)

{

Console.WriteLine("Cannot open sorted_customer_list.txt for writing");

Console.WriteLine(e.Message);

return;

}

Console.SetOut(writer);

//Assign account executive to each group

noDiscountCg.AccountExecutive.Name = "Robert Rich";

Console.WriteLine("The following customers will be assigned to the account executive named " + noDiscountCg.AccountExecutive.Name);

Console.WriteLine("This customer will be placed in group number " + noDiscountCg.GroupID);

foreach (Customer Customer in noDiscountCg.CustomerList)

{

Console.WriteLine(Customer.Name);

Console.WriteLine(Customer.TotalTransactions);

}

lowDiscountCg.AccountExecutive.Name = "Brian Williams";

Console.WriteLine("The following customers will be assigned to the account executive named " + lowDiscountCg.AccountExecutive.Name);

Console.WriteLine("This customer will be placed in group number " + lowDiscountCg.GroupID);

foreach (Customer Customer in lowDiscountCg.CustomerList)

{

Console.WriteLine(Customer.Name);

Console.WriteLine(Customer.TotalTransactions);

}

highDiscountCg.AccountExecutive.Name = "Tim Hecker";

Console.WriteLine("The following customers will be assigned to the account executive named " + highDiscountCg.AccountExecutive.Name);

Console.WriteLine("This customer will be placed in group number " + highDiscountCg.GroupID);

foreach (Customer Customer in highDiscountCg.CustomerList)

{

Console.WriteLine(Customer.Name);

Console.WriteLine(Customer.TotalTransactions);

}

Console.SetOut(oldOut);

writer.Close();

ostrm.Close();

Console.WriteLine("Done.");

Console.WriteLine("This text file is located in the Debug subfolder within the Bin folder.");

}

}