View difference between Paste ID: YH3W5HKF and 9JxTx5bu
SHOW: | | - or go back to the newest paste.
1
using System;
2
using System.IO;
3
using System.Collections.Generic;
4
using System.Linq;
5
using System.Text;
6
7
namespace applicationName
8
{
9
   public class Program
10
    {
11
        static void Main(string[] args)
12
        {
13
            //Declare new lists based on the discounts each customer will receive
14
            CustomerGroup noDiscountCg = new CustomerGroup();
15
            CustomerGroup lowDiscountCg = new CustomerGroup();
16
            CustomerGroup highDiscountCg = new CustomerGroup();
17
18
            List<Customer> unsortedCustomer = new List<Customer>
19
            {
20
            //Adding customers to the unsorted list
21
            new Customer(123456, "Thom Yorke", "215 Chestnut Lane", "[email protected]", 2569876548, new DateTime(2013, 1, 9), 500),
22
            new Customer(852963, "Annie Clark", "879 Hickory Road", "[email protected]", 3135453404, new DateTime(2002, 11, 12), 200),
23
            new Customer(147987, "Claire Boucher", "200 Dogwood Drive", "[email protected]", 9635874102, new DateTime(2000, 10, 11), 10),
24
            new Customer(357951, "Sophie Hutchings", "963 Highview Court", "[email protected]", 2510147756, new DateTime(2007, 8, 8), 400),
25
            new Customer(789987, "Danny Teague", "8410 Greensboro Road ", "[email protected]", 2315648974, new DateTime(2011, 4, 4), 60),
26
            new Customer(753963, "Brian McBride", "444 Buena Vista Court", "[email protected]", 7899877410, new DateTime(2003, 10, 10), 560),
27
            new Customer(200132, "David Bowie", "921 Washington Ave", "[email protected]", 4566541230, new DateTime(2000, 1, 1), 910),
28
            new Customer(452631, "Aidan Baker", "741 Palm Springs Road", "[email protected]", 1233210123, new DateTime(2005, 5, 5), 700),
29
            new Customer(687952, "Ben Frost", "563 Cedar Lane", "[email protected]", 8256987654, new DateTime(2013, 2, 9), 890),
30
            new Customer(985204, "Bill Laswell", "10 Pennsylvania Ave", "[email protected]", 3413545340, new DateTime(2004, 12, 12), 201),
31
            new Customer(112154, "Claude Debussy", "852 Stone Brook Road", "[email protected]", 5874963102, new DateTime(2001, 2, 5), 101),
32
            new Customer(311159, "James Blake", "700 Mountain View Drive", "[email protected]", 2477510156, new DateTime(2007, 7, 3), 630)
33
            };
34
                      
35
            
36
            //Loop that sorts based on discounts given number of average transactions
37
            //Assigns each unsorted customer into a new group based on the discount they'll receive
38
            foreach (Customer temporary in unsortedCustomer)
39
            {
40
                if (temporary.CalcTransaction() <= 3)
41
                {
42
                    noDiscountCg.CustomerList.Add(temporary);
43
                }
44
45-
                if (temporary.CalcTransaction() > 6)
45+
                else if (temporary.CalcTransaction() > 6)
46
47
                {
48
                    lowDiscountCg.CustomerList.Add(temporary);
49
                }
50
51-
                if (temporary.CalcTransaction() > 15)
51+
                else if (temporary.CalcTransaction() > 15)
52
                {
53
                    highDiscountCg.CustomerList.Add(temporary);
54
                }
55
            }
56
57
            //Assign unique ID's to each customer group
58
59
            noDiscountCg.GroupID = 200;
60
            lowDiscountCg.GroupID = 500;
61
            highDiscountCg.GroupID = 700;
62
            
63
            FileStream ostrm;
64
            StreamWriter writer;
65
            TextWriter oldOut = Console.Out;
66
            try
67
            {
68
                ostrm = new FileStream("./sorted_customer_list.txt", FileMode.OpenOrCreate, FileAccess.Write);
69
                writer = new StreamWriter(ostrm);
70
            }
71
            catch (Exception e)
72
            {
73
                Console.WriteLine("Cannot open sorted_customer_list.txt for writing");
74
                Console.WriteLine(e.Message);
75
                return;
76
            }
77
            Console.SetOut(writer);
78
           
79
80
        //Assign account executive to each group
81
            NoDiscountCustomerGroup(noDiscountCg);
82
            LowDiscountCustomerGroup(lowDiscountCg);
83
            HighDiscountCustomerGroup(highDiscountCg);
84
             
85
             Console.SetOut(oldOut);
86
             writer.Close();
87
             ostrm.Close();
88
             Console.WriteLine("Done.");
89
             Console.WriteLine("This text file is located in the Debug subfolder within the Bin folder.");
90
            
91
        }
92
93
        private static void HighDiscountCustomerGroup(CustomerGroup highDiscountCg)
94
        {
95
            highDiscountCg.AccountExecutive.Name = "Tim Hecker";
96
            Console.WriteLine("The following customers will be assigned to the account executive named " + highDiscountCg.AccountExecutive.Name);
97
            Console.WriteLine("This customer will be placed in group number " + highDiscountCg.GroupID);
98
            foreach (Customer Customer in highDiscountCg.CustomerList)
99
            {
100
                Console.WriteLine(Customer.Name);
101
                Console.WriteLine(Customer.TotalTransactions);
102
            }
103
        }
104
105
        private static void LowDiscountCustomerGroup(CustomerGroup lowDiscountCg)
106
        {
107
            lowDiscountCg.AccountExecutive.Name = "Brian Williams";
108
            Console.WriteLine("The following customers will be assigned to the account executive named " + lowDiscountCg.AccountExecutive.Name);
109
            Console.WriteLine("This customer will be placed in group number " + lowDiscountCg.GroupID);
110
            foreach (Customer Customer in lowDiscountCg.CustomerList)
111
            {
112
                Console.WriteLine(Customer.Name);
113
                Console.WriteLine(Customer.TotalTransactions);
114
            }
115
        }
116
117
        private static void NoDiscountCustomerGroup(CustomerGroup noDiscountCg)
118
        {
119
            noDiscountCg.AccountExecutive.Name = "Robert Rich";
120
            Console.WriteLine("The following customers will be assigned to the account executive named " + noDiscountCg.AccountExecutive.Name);
121
            Console.WriteLine("This customer will be placed in group number " + noDiscountCg.GroupID);
122
            foreach (Customer Customer in noDiscountCg.CustomerList)
123
            {
124
                Console.WriteLine(Customer.Name);
125
                Console.WriteLine(Customer.TotalTransactions);
126
            }
127
        }
128
    }
129
}