Exemple #1
0
        public static Starport Create(string name, SolarSystem solarSystem)
        {
            Starport starport = new Starport();

            starport.Apply(new StarportCreated(name, solarSystem));

            return(starport);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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));
        }
Exemple #5
0
        public Starport Build()
        {
            Starport starport = Starport.Create(_name, _solarSystem);

            return(starport);
        }
Exemple #6
0
        public TradeRoute Find(Starport origin)
        {
            var tradeRoutes = FindAll(origin);

            return(tradeRoutes.Where(t => t.Profit == tradeRoutes.Max(m => m.Profit)).First());
        }