Пример #1
0
        public static (decimal PerHour, decimal PerKilometer) Instance(string car, string subscription)
        {
            //Singleton to call DB only one time, a static configuration need a static flow. Remember this one.
            if (subscriptionPrices == null)
            {
                lock (trafficLight)
                {
                    if (subscriptionPrices == null)
                    {
                        string json = "[{\"Label\":\"Occasional\",\"priceBands\":[{\"Label\":\"Small\",\"PerHours\":6,\"PerKilometers\":0.34},{\"Label\":\"Large\",\"PerHours\":7.50,\"PerKilometers\":0.39},{\"Label\":\"Electric\",\"PerHours\":11,\"PerKilometers\":0.20}]},{\"Label\":\"Regular\",\"priceBands\":[{\"Label\":\"Small\",\"PerHours\":4,\"PerKilometers\":0.29},{\"Label\":\"Large\",\"PerHours\":5.50,\"PerKilometers\":0.34},{\"Label\":\"Electric\",\"PerHours\":9,\"PerKilometers\":0.15}]},{\"Label\":\"Frequent\",\"priceBands\":[{\"Label\":\"Small\",\"PerHours\":3,\"PerKilometers\":0.24},{\"Label\":\"Large\",\"PerHours\":4.50,\"PerKilometers\":0.29},{\"Label\":\"Electric\",\"PerHours\":8,\"PerKilometers\":0.12}]}]";
                        subscriptionPrices = JsonConvert.DeserializeObject <List <SubscriptionPrice> >(json);
                    }
                }
            }
            PriceBand priceBand = subscriptionPrices.Find(ø => ø.Label.Equals(subscription)).priceBands.Find(ƒ => ƒ.Label.Equals(car));

            return(priceBand.PerHours, priceBand.PerKilometers);
        }
Пример #2
0
 private void AssertPriceBandIsValid(PriceBand priceBand, DateTime requestedDate)
 {
     Assert.NotNull(priceBand.SalePrice.FirstOrDefault());
     Assert.NotNull(priceBand.FaceValue.FirstOrDefault());
     Assert.AreEqual(requestedDate.Date, priceBand.Date?.Date);
 }