public static Starport Create(string name, SolarSystem solarSystem) { Starport starport = new Starport(); starport.Apply(new StarportCreated(name, solarSystem)); return(starport); }
public static Starport Load(string name, string system, string economy) { Starport starport = new Starport { Economy = Economy.Parse(economy), Name = name, System = new SolarSystem(system, new Coordinate(0, 0, 0)), Goods = new List <StockItem>() }; return(starport); }
public override bool Equals(object obj) { Starport other = obj as Starport; if (other == null) { return(false); } bool nameSame = string.Equals(this.Name, other.Name, StringComparison.InvariantCultureIgnoreCase); bool economySame = Economy == other.Economy; bool systemSame = System == other.System; return(nameSame && economySame && systemSame); }
public IEnumerable <TradeRoute> FindAll(Starport origin) { IEnumerable <TradeCommodity> exports = origin.Exports().ToList(); List <TradeRoute> tradeRoutes = new List <TradeRoute>(); foreach (Starport destination in _starports) { IEnumerable <TradeCommodity> imports = destination.Imports(); foreach (TradeCommodity import in imports) { TradeCommodity export = exports.SingleOrDefault(e => e.Commodity == import.Commodity); if (export != null) { TradeRoute route = TradeRoute.Create(origin, destination, export.Commodity, export.Price, import.Price); tradeRoutes.Add(route); } } } return(tradeRoutes.Where(t => t.Profit > 0)); }
public Starport Build() { Starport starport = Starport.Create(_name, _solarSystem); return(starport); }
public TradeRoute Find(Starport origin) { var tradeRoutes = FindAll(origin); return(tradeRoutes.Where(t => t.Profit == tradeRoutes.Max(m => m.Profit)).First()); }