public void Setup() { this.mock = new SalesLayout(); this.mock.Customers.Add(new Customer("000", "Customer1", "Industrial")); this.mock.Customers.Add(new Customer("001", "Customer2", "Rural")); this.mock.Customers.Add(new Customer("002", "Customer3", "Industrial")); this.mock.Customers.Add(new Customer("003", "Customer4", "Industrial")); this.mock.Sellers.Add(new Seller("001", "Seller1", 1600.5m)); this.mock.Sellers.Add(new Seller("002", "Seller2", 3500)); this.mock.Sellers.Add(new Seller("003", "Seller3", 1310.75m)); var sale1 = new Sale(1, "Seller1"); var sale2 = new Sale(2, "Seller2"); var sale3 = new Sale(3, "Seller3"); sale1.Items.Add(new Item(1, 100, 1.5f)); sale2.Items.Add(new Item(2, 50, 1.5f)); sale3.Items.Add(new Item(3, 1000, 1.5f)); this.mock.Sales.Add(sale1); this.mock.Sales.Add(sale2); this.mock.Sales.Add(sale3); }
public static int Run(SalesLayout data) { if (data == null) { throw new ArgumentNullException(); } var response = data.Customers.Distinct().Count(); return(response); }
public override void Execute() { // Step 1: Parse file var layout = new SalesLayout(); layout.Parse(this.fileInfo); // Step 2: Generate reports var report = new SalesReport(); report.Run(layout); }
public static (string Seller, float Sold) Run(SalesLayout data) { if (data == null) { throw new ArgumentNullException(); } var worst = data.Sales .GroupBy(x => x.SellerName) .ToDictionary ( k => k.Key, v => v.Sum(d => d.Items.Sum(s => s.Price * s.Quantity)) ).OrderBy(x => x.Value).FirstOrDefault(); return(worst.Key, worst.Value); }
public static (int ID, float Value) Run(SalesLayout data) { if (data == null) { throw new ArgumentNullException(); } var response = data.Sales .ToDictionary ( k => k.ID, v => v.Items.Sum(s => s.Price * s.Quantity) ).OrderByDescending(x => x.Value) .FirstOrDefault(); return(response.Key, response.Value); }
public void Run(SalesLayout layout) { var path = $"{DATA_OUT}\\Output{layout.FileName}.txt"; if (File.Exists(path)) { File.Delete(path); } using (StreamWriter stream = File.CreateText(path)) { stream.WriteLine($"CustomersCount: {CustomersCount.Run(layout)}"); stream.WriteLine($"SellersCounter: {SellersCounter.Run(layout)}"); var mostExpensive = MostExpensiveSale.Run(layout); stream.WriteLine($"MostExpensiveSale: ID {mostExpensive.ID} - Total {mostExpensive.Value}"); var worst = WorstSeller.Run(layout); stream.WriteLine($"WorstSeller: {worst.Seller} - Sold {worst.Sold}"); } }