Skip to content

Instantly share code, notes, and snippets.

@200even
Last active August 29, 2015 14:24
Show Gist options
  • Save 200even/ddebe4e0c13a64fde096 to your computer and use it in GitHub Desktop.
Save 200even/ddebe4e0c13a64fde096 to your computer and use it in GitHub Desktop.
Scott Day 4 Planet Express
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