public List <RevenueDetail> LoadFromCsv(string csv) { Console.WriteLine("Truck, Week, Date, NetRevenue"); List <RevenueDetail> truckRevenue = new List <RevenueDetail>(); using (var sr = new StringReader(csv)) { sr.ReadLine(); // advance past 1st line. string line = ""; string truckId = ""; while ((line = sr.ReadLine()) != null) { if (line == "") { truckId = ReadTruckId(sr); } else { string[] row = line.Split(','); RevenueDetail detail = ParseRow(row); detail.Truck = truckId; truckRevenue.Add(detail); Console.WriteLine("{0}, {1}, {2:MM/dd/yyyy}, {3}", truckId, detail.Week, detail.Date, GetRevenue(detail)); } } } return(truckRevenue); }
private double GetRevenue(RevenueDetail detail) { double revenue = 0; revenue += (detail.Linehaul * 0.50); revenue += (detail.Accesorials * 0.20); return(revenue); }
private RevenueDetail ParseRow(string[] row) { RevenueDetail detail = new RevenueDetail(); string date = GetColumn(row, Column.Date); detail.Date = DateTime.Parse(date); detail.Linehaul = GetColumnAsDouble(row, Column.Linehaul); detail.Layover = GetColumnAsDouble(row, Column.Layover); detail.Other = GetColumnAsDouble(row, Column.Other); detail.StopOff = GetColumnAsDouble(row, Column.StopOff); detail.Canada = GetColumnAsDouble(row, Column.Canada); detail.Accesorials = GetColumnAsDouble(row, Column.Accesorials); detail.Miles = GetColumnAsDouble(row, Column.Miles); detail.Detention = GetColumnAsDouble(row, Column.Detention); detail.DeadHead = GetColumnAsDouble(row, Column.DeadHead); detail.HandLoad = GetColumnAsDouble(row, Column.HandLoad); detail.Tolls = GetColumnAsDouble(row, Column.Tolls); detail.Bonus = GetColumnAsDouble(row, Column.Bonus); detail.EmptyMove = GetColumnAsDouble(row, Column.EmptyMove); detail.Other = GetColumnAsDouble(row, Column.Other); detail.FuelSurcharge = GetColumnAsDouble(row, Column.FuelSurcharge); return(detail); }