Ejemplo n.º 1
0
        public static BabySitterCalculatorServiceModel calculateServiceCharge(BabySitterCalculatorServiceModel model)
        {
            string StartTime           = model.StartTime;
            string EndTime             = model.EndTime;
            bool   StartTimeMatchFound = false;
            int    HourCounter         = 0;
            int    PriceCounter        = 0;

            foreach (KeyValuePair <string, int> item in HourlyPriceList)
            {
                if (item.Key.Equals(StartTime))
                {
                    StartTimeMatchFound = true;
                    continue;
                }
                if (item.Key.Equals(EndTime))
                {
                    PriceCounter += item.Value;
                    HourCounter++;
                    break;
                }
                if (StartTimeMatchFound)
                {
                    PriceCounter += item.Value;
                    HourCounter++;
                }
            }
            model.BillingCharge = PriceCounter;
            model.BillingHours  = HourCounter;
            return(model);
        }
        public void CalculateServiceChargeTest()
        {
            BabySitterCalculatorServiceModel inputBabySitterCalculatorServiceModel = new BabySitterCalculatorServiceModel();

            inputBabySitterCalculatorServiceModel.StartTime = "5:00 PM";
            inputBabySitterCalculatorServiceModel.EndTime   = "10:00 PM";
            BabySitterCalculatorServiceModel resultBabySitterCalculatorServiceModel = BabySitterBillingCalculatorService.calculateServiceCharge(inputBabySitterCalculatorServiceModel);

            Assert.AreEqual(resultBabySitterCalculatorServiceModel.BillingHours, 5);
            Assert.AreEqual(resultBabySitterCalculatorServiceModel.BillingCharge, 56);
        }
        public async Task <IHttpActionResult> GetServiceHoursAndBillingChargesAsync(BabySitterCalculatorServiceModel model)
        {
            if (model.StartTime != null && model.EndTime != null)
            {
                BabySitterCalculatorServiceModel updatedModel = await Task.Run(() => BabySitterBillingCalculatorService.calculateServiceCharge(model));

                return(Ok(updatedModel));
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }