private decimal GetDailyFoodCost(Animal animal) { Rate rate = _rateRepository.GetRateForAnimalType(animal.Type); switch (rate.ConsumptionType) { case FoodConsumptionType.Fruit: return(animal.Weight * rate.Value * _fruitPrice); case FoodConsumptionType.Meat: return(animal.Weight * rate.Value * _meatPrice); default: return(animal.Weight * rate.Value * rate.Percentage * _meatPrice + animal.Weight * rate.Value * (1 - rate.Percentage) * _fruitPrice); } }
public AnimalDailyFeedingCostCalculator(Animal animal, IRateRepository rateRepository, IPriceRepository priceRepository) { _animal = animal; _priceRepository = priceRepository; _rate = rateRepository.GetRateForAnimalType(animal.Type); }