Exemplo n.º 1
0
        public static int GetSourceMass(this Voyage voyage, ITradeItemsDatabase itemsDatabase)
        {
            if (voyage == null)
            {
                throw new ArgumentNullException(nameof(voyage));
            }
            if (itemsDatabase == null)
            {
                throw new ArgumentNullException(nameof(itemsDatabase));
            }

            return(voyage.Exchanges
                   .Sum(ex => ex.GetSourceMass(itemsDatabase).GetValueOrDefault()));
        }
Exemplo n.º 2
0
        public static string GetWarning(this Voyage voyage, ITradeItemsDatabase itemsDatabase)
        {
            if (voyage == null)
            {
                throw new ArgumentNullException(nameof(voyage));
            }
            if (itemsDatabase == null)
            {
                throw new ArgumentNullException(nameof(itemsDatabase));
            }

            if (voyage.GetSourceMass(itemsDatabase) > voyage.Ship.MaxMass || voyage.GetDestMass(itemsDatabase) > voyage.Ship.MaxMass)
            {
                return("Перегруз");
            }

            return(string.Empty);
        }
Exemplo n.º 3
0
        public static string GetError(this Voyage voyage, ITradeItemsDatabase itemsDatabase)
        {
            if (voyage == null)
            {
                throw new ArgumentNullException(nameof(voyage));
            }
            if (itemsDatabase == null)
            {
                throw new ArgumentNullException(nameof(itemsDatabase));
            }

            var sourceMass = 0;
            var destMass   = 0;
            var orevMass   = false;

            foreach (var exchange in voyage.Exchanges)
            {
                for (var i = 0; i < exchange.Count; i++)
                {
                    sourceMass += itemsDatabase.GetMass(exchange.SourceItem.Level);
                    destMass   += itemsDatabase.GetMass(exchange.DestItem.Level) * exchange.Ratio;
                    if (sourceMass > voyage.Ship.MaxMass || destMass > voyage.Ship.MaxMass)
                    {
                        if (!orevMass)
                        {
                            orevMass = true;
                        }
                        else
                        {
                            return("Не влезет");
                        }
                    }
                }
            }

            return(string.Empty);
        }
Exemplo n.º 4
0
 public SearchEngine(ITradeItemsDatabase tradeItemsDatabase, ITranslateService translateService)
 {
     _tradeItemsDatabase = tradeItemsDatabase ?? throw new ArgumentNullException(nameof(tradeItemsDatabase));
     _translateService   = translateService ?? throw new ArgumentNullException(nameof(translateService));
 }