Example #1
0
 public BikeRental(string name, int lengthInOurs, int unitPrice, int bikesAmount, IPriceStrategy priceStrategy)
 {
     this.Name          = name;
     this.LengthInHours = lengthInOurs;
     this.UnitPrice     = unitPrice;
     this.BikesAmount   = bikesAmount;
     this.PriceStrategy = priceStrategy;
 }
Example #2
0
        public ParkingLot(IClock clock, IPriceStrategy priceStrategy)

        {
            this.freeTime      = freeTime;
            this.span          = span;
            this.price         = price;
            this.clock         = clock;
            this.priceStrategy = priceStrategy;
        }
Example #3
0
 public PizzaMan(PizzaOven pizzaOven)
 {
     PizzaOven = pizzaOven;
     PizzaOven.AddObserver(this);
     Factory = new PizzaFactory();
     PriceStrategy = TimeOfDay.Lunch;
     EveningPriceStrategy = new EveningPriceStrategy();
     LunchPriceStrategy = new LunchPriceStrategy();
     NightPriceStrategy = new NightPriceStrategy();
 }
Example #4
0
 public ServiceHandler(PizzaShopVm shopVm)
 {
     ShopVm = shopVm;
     MainOven = new PizzaOven();
     PizzaMan1 = new PizzaMan(MainOven, this);
     PriceStrategy = TimeOfDay.Lunch;
     EveningPriceStrategy = new EveningPriceStrategy();
     LunchPriceStrategy = new LunchPriceStrategy();
     NightPriceStrategy = new NightPriceStrategy();
 }
Example #5
0
        internal int AccumulatePrice(int quantity, IPriceStrategy priceStrategy)
        {
            IEnumerable <Batch> strategiedBatches = priceStrategy.Apply(this.batches);

            int totalPrice     = 0;
            var stockProcessor = new StockProcessor(quantity);

            stockProcessor.Process(strategiedBatches, (q, batch) => totalPrice += batch.GetPriceFor(q));

            return(totalPrice);
        }
 public void Setup()
 {
     _mapper = Substitute.For <IMapper>();
     _googleMapsApiService    = Substitute.For <IGoogleMapsApiService>();
     _rideRepository          = Substitute.For <IRideRepository>();
     _soloRidePriceStrategy   = Substitute.For <IPriceStrategy>();
     _sharedRidePriceStrategy = Substitute.For <IPriceStrategy>();
     _priceStrategyFactory    = Substitute.For <IPriceStrategyFactory>();
     _unitOfWork    = Substitute.For <IUnitOfWork>();
     _matchService  = Substitute.For <IMatchService>();
     _rideService   = new RideService(_mapper, _googleMapsApiService, _priceStrategyFactory, _unitOfWork, _matchService);
     _anAddress     = new Address("city", 1000, "street", 1);
     _anAddress.Lat = 10;
     _anAddress.Lng = 10;
 }
Example #7
0
 private void SetPriceStrategy()
 {
     if (Stock < 50)
     {
         priceStrategy = new LowStockPriceStrategy();
     }
     else if (Stock >= 50 && Stock <= 100)
     {
         priceStrategy = new MediunStockPriceStrategy();
     }
     else //if (Stock > 100)
     {
         priceStrategy = new HighStockPriceStrategy();
     }
 }
Example #8
0
        internal void ReduceStock(int quantity, IPriceStrategy priceStrategy)
        {
            IEnumerable <Batch> strategiedBatches = priceStrategy.Apply(this.batches);

            var stockProcessor = new StockProcessor(quantity);

            stockProcessor.Process(strategiedBatches, (q, batch) =>
            {
                batch.ReduceQuantity(q);

                if (batch.IsEmpty())
                {
                    this.batches.Remove(batch);
                }
            });
        }
Example #9
0
 public void Setup()
 {
     strategy = new AgedPriceStrategy();
 }
Example #10
0
 public void Add( IPriceStrategy ips )
 {
     strategies.Add( ips );
 }
Example #11
0
 public void SetStrategy(IPriceStrategy priceStrategy)
 {
     _priceStrategy = priceStrategy;
 }
Example #12
0
 public ParkingLot(IClock clock, IPriceStrategy priceStrategy)
 {
     this.clock         = clock;
     this.priceStrategy = priceStrategy;
 }
 public Movie(string title, IPriceStrategy priceStrategy)
 {
     Title         = title;
     PriceStrategy = priceStrategy;
 }
 public void Add(IPriceStrategy iStrategyObject)
 {
     if(priceStrategyList!=null)
         priceStrategyList.Add(iStrategyObject);
 }
 public void Setup()
 {
     strategy = new PerishablePriceStrategy();
 }
 public void Setup()
 {
     strategy = new NormalPriceStrategy();
 }
Example #17
0
 public void SetStrategy(IPriceStrategy priceStrategy)
 {
     this.priceStrategy = priceStrategy;
 }
 public void CheckOut(PartDescription partDescription, int quantity, IPriceStrategy priceStrategy)
 {
     warehousesBatches.Filter(partDescription)
     .ReduceStock(quantity, priceStrategy);
 }
        public PartCost PreviewCheckOut(PartDescription partDescription, int quantity, IPriceStrategy priceStrategy)
        {
            int totalPrice = warehousesBatches.Filter(partDescription)
                             .AccumulatePrice(quantity, priceStrategy);

            return(new PartCost(totalPrice));
        }