コード例 #1
0
 public virtual decimal Estimate(IMerchandise merchandise)
 {
     if (_exemptions.GetExemptions().Contains(merchandise.MerchandiseType))
     {
         return(0M);
     }
     return(Math.Round(merchandise.Price / 10M, 2, MidpointRounding.AwayFromZero));
 }
コード例 #2
0
        public void Down(Wagon wagon, IMerchandise merchandise)
        {
            if (this.IsOverweightPackage)
            {
                this.IsOverweightPackage = false;
            }

            wagon.Merchandise.RemoveAt(wagon.Merchandise.FindIndex(x => x.GetWeight() == merchandise.GetWeight()));
        }
コード例 #3
0
        public virtual decimal Estimate(IMerchandise merchandise)
        {
            if (!merchandise.Import)
            {
                return(0M);
            }

            return(Math.Round(merchandise.Price / 20M, 1, MidpointRounding.AwayFromZero));
        }
コード例 #4
0
        public override bool IsValid(object value)
        {
            IMerchandise item = value as IMerchandise;

            if (item == null)
            {
                return(!Optional);
            }

            return(item.Item != null && item.QualityRange.Low <= item.QualityRange.High);
        }
コード例 #5
0
 public void Up(Wagon wagon, IMerchandise merchandise)
 {
     if (this.MerchantMode.Equals(TraderMode.Buy))
     {
         var percentageWithMerchandise = this.CurrentPercentage + (merchandise.GetWeight() * 100 / this.MaxTransportWeight);
         if (percentageWithMerchandise <= this.PercentageToFill)
         {
             this.CurrentPercentage = percentageWithMerchandise;
             wagon.Merchandise.Add(merchandise);
         }
     }
 }
コード例 #6
0
 public void Up(Wagon wagon, IMerchandise merchandise)
 {
     if (merchandise.GetWeight() < this.PackageMaxWeight)
     {
         wagon.Merchandise.Add(merchandise);
     }
     else if (!this.IsOverweightPackage)
     {
         this.IsOverweightPackage = true;
         wagon.Merchandise.Add(merchandise);
     }
 }
コード例 #7
0
 public void Down(Wagon wagon, IMerchandise merchandise)
 {
     if (this.MerchantMode.Equals(TraderMode.Sell))
     {
         var percentageWithOutMerchandise = this.CurrentPercentage - (merchandise.GetWeight() * 100 / this.MaxTransportWeight);
         if (percentageWithOutMerchandise >= this.PercentageToEmpty)
         {
             this.CurrentPercentage = percentageWithOutMerchandise;
             wagon.Merchandise.Remove(merchandise);
         }
     }
 }
コード例 #8
0
ファイル: Wagon.cs プロジェクト: MaxiHRuiz/KingdomProject
 public bool IsThereSpace(IMerchandise merchandise)
 {
     return((WeightCarried + merchandise.GetWeight()) < TotalWeight);
 }
コード例 #9
0
ファイル: Wagon.cs プロジェクト: MaxiHRuiz/KingdomProject
 public bool HaveIt(IMerchandise merchandise)
 {
     return(this.Merchandise.Any(x => x.GetWeight() == merchandise.GetWeight()));
 }
コード例 #10
0
ファイル: Wagon.cs プロジェクト: MaxiHRuiz/KingdomProject
 public void Down(IMerchandise merchandise)
 {
     TradePolicy.Down(this, merchandise);
 }
コード例 #11
0
ファイル: Wagon.cs プロジェクト: MaxiHRuiz/KingdomProject
 public void Up(IMerchandise merchandise)
 {
     TradePolicy.Up(this, merchandise);
 }
コード例 #12
0
 public virtual void Add(IMerchandise merchandise)
 {
     _goods.Add(merchandise);
 }
コード例 #13
0
ファイル: City.cs プロジェクト: MaxiHRuiz/KingdomProject
 public void Bid(IMerchandise merchandise)
 {
     SupplyList.Add(merchandise);
 }
コード例 #14
0
        private void PrintText(IMerchandise merchandise, decimal tax)
        {
            var priceTotal = merchandise.Price + tax;

            Console.WriteLine($"{merchandise.Amount} {merchandise.Name}: {priceTotal:####.#0}");
        }
コード例 #15
0
 public void Up(Wagon wagon, IMerchandise merchandise)
 {
     wagon.WeightCarried += merchandise.GetWeight();
     wagon.Merchandise.Add(merchandise);
 }
コード例 #16
0
 void ITradePolicy.Down(Wagon wagon, IMerchandise merchandise)
 {
     wagon.WeightCarried -= merchandise.GetWeight();
     wagon.Merchandise.Remove(merchandise);
 }
コード例 #17
0
ファイル: City.cs プロジェクト: MaxiHRuiz/KingdomProject
 public void Demand(IMerchandise merchandise)
 {
     DemandList.Add(merchandise);
 }
コード例 #18
0
 public MerchandiseStock(IMerchandise item, int amount)
 {
     Item   = item;
     Amount = amount;
 }