Last active
August 29, 2015 14:24
-
-
Save 200even/ddebe4e0c13a64fde096 to your computer and use it in GitHub Desktop.
Scott Day 4 Planet Express
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
using System.IO; | |
namespace PlanetDeliveries | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
List<Delivery> deliveries = ParseData(); | |
int totalSum = deliveries.Sum(d => d.MoneyMade); | |
//10% of moneyMade by Fry | |
//we want deliveries where Fry did it and take 10% of the sum of those deliveries | |
int fryMoney = deliveries.Where(d => d.WhoDeliveredIt == "Fry").Sum(d => d.MoneyMade); | |
var fryCommish = fryMoney * .1f; | |
int amyMoney = deliveries.Where(d => d.WhoDeliveredIt == "Amy").Sum(d => d.MoneyMade); | |
var amyCommish = amyMoney * .1f; | |
int benderMoney = deliveries.Where(d => d.WhoDeliveredIt == "Bender").Sum(d => d.MoneyMade); | |
var benderCommish = benderMoney * .1f; | |
int leelaMoney = deliveries.Where(d => d.WhoDeliveredIt == "Leela").Sum(d => d.MoneyMade); | |
var leelaCommish = leelaMoney * .1f; | |
int fryCount = deliveries.Where(d => d.WhoDeliveredIt == "Fry").Count(); | |
int amyCount = deliveries.Where(d => d.WhoDeliveredIt == "Amy").Count(); | |
int benderCount = deliveries.Where(d => d.WhoDeliveredIt == "Bender").Count(); | |
int leelaCount = deliveries.Where(d => d.WhoDeliveredIt == "Leela").Count(); | |
int deliveriesEarth = deliveries.Where(d => d.planetName == "Earth").Count(); | |
int deliveriesMoon = deliveries.Where(d => d.planetName == "Moon").Count(); | |
int deliveriesMars = deliveries.Where(d => d.planetName == "Mars").Count(); | |
int deliveriesUranus = deliveries.Where(d => d.planetName == "Uranus").Count(); | |
int deliveriesJupiter = deliveries.Where(d => d.planetName == "Jupiter").Count(); | |
int deliveriesPluto = deliveries.Where(d => d.planetName == "Pluto").Count(); | |
int deliveriesSaturn = deliveries.Where(d => d.planetName == "Saturn").Count(); | |
int deliveriesMercury = deliveries.Where(d => d.planetName == "Mercury").Count(); | |
Console.WriteLine("Fry made {1} deliveries and made a {0:C} bonus.", fryCommish, fryCount); | |
Console.WriteLine("Amy made {1} deliveries and made a a {0:C} bonus.", amyCommish, amyCount); | |
Console.WriteLine("Bender made {1} deliveries and made a {0:C} bonus.", benderCommish, benderCount); | |
Console.WriteLine("Leela made {1} deliveries and made a {0:C} bonus.", leelaCommish, leelaCount); | |
Console.WriteLine("Planet Express made {0:C} this week.", totalSum); | |
Console.WriteLine("Planet express made {0} deliveries to Earth, {1} to the Moon, {2} to Mars, {3} to Uranus, {4} to Jupiter, {5} to Pluto, {6} to Saturn, and {7} to Mercury.", deliveriesEarth, deliveriesMoon, deliveriesMars, deliveriesUranus, deliveriesJupiter, deliveriesPluto, deliveriesSaturn, deliveriesMercury); | |
Console.ReadLine(); | |
} | |
private static List<Delivery> ParseData() | |
{ | |
string[] fileContents = File.ReadAllLines(@"C:\Users\Scott\OneDrive\Iron Yard\Week 1\planet_express_logs.csv"); | |
List<Delivery> deliveries = new List<Delivery>(); | |
foreach (string row in fileContents) | |
{ | |
if (row.StartsWith("Dest")) | |
{ | |
continue; | |
} | |
string[] deliveryInfo = row.Split(','); | |
Delivery delivery = new Delivery(); | |
delivery.planetName = deliveryInfo[0]; | |
delivery.MoneyMade = int.Parse(deliveryInfo[3]); | |
delivery.NumberOfCrates = int.Parse(deliveryInfo[2]); | |
delivery.DateCreated = DateTime.Parse(deliveryInfo[4]); | |
delivery.WhatGotShipped = deliveryInfo[1]; | |
delivery.WhoDeliveredIt = WhoDeliversWhere(deliveryInfo[0]); | |
deliveries.Add(delivery); | |
} | |
return deliveries; | |
} | |
public static string WhoDeliversWhere(string planetName) | |
{ | |
if (planetName == "Earth") | |
{ | |
return "Fry"; | |
} | |
if (planetName == "Mars") | |
{ | |
return "Amy"; | |
} | |
if (planetName == "Uranus") | |
{ | |
return "Bender"; | |
} | |
return "Leela"; | |
} | |
} | |
public class Delivery | |
{ | |
public string planetName { get; set; } | |
public int NumberOfCrates { get; set; } | |
public int MoneyMade { get; set; } | |
public string WhatGotShipped { get; set; } | |
public DateTime DateCreated { get; set; } | |
public string WhoDeliveredIt { get; set; } | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment