public async Task <IActionResult> GetBabySitterShift(int babySitterId, int shiftId)
        {
            var args  = new GetBabySitterShiftByIdArgs(babySitterId, shiftId);
            var model = await _queryBus.Execute <GetBabySitterShiftByIdArgs, ShiftModel>(args);

            return(Ok(model));
        }
        public async Task ShouldReturnNullWhenShiftIdDoesNotMatch()
        {
            var sitter = _context.Add(ModelFactory.CreateSitter()).Entity;

            _context.Add(ModelFactory.CreateShift(sitter));
            _context.SaveChanges();

            var args  = new GetBabySitterShiftByIdArgs(sitter.Id, int.MaxValue);
            var model = await _query.Execute(args);

            Assert.Null(model);
        }
        public async Task ShouldReturnShiftForBabySitter()
        {
            var sitter = _context.Add(ModelFactory.CreateSitter()).Entity;

            _context.Add(ModelFactory.CreateShift(sitter));
            var shift = _context.Add(ModelFactory.CreateShift(sitter)).Entity;

            _context.Add(ModelFactory.CreateShift(sitter));
            _context.SaveChanges();

            var args  = new GetBabySitterShiftByIdArgs(sitter.Id, shift.Id);
            var model = await _query.Execute(args);

            Assert.Equal(shift.Id, model.Id);
            Assert.Equal(shift.Sitter.Id, model.SitterId);
            Assert.Equal(shift.Bedtime, model.Bedtime);
            Assert.Equal(shift.EndTime, model.EndTime);
            Assert.Equal(shift.StartTime, model.StartTime);
            Assert.Equal(shift.AmountCharged, model.AmountCharged);
            Assert.Equal(shift.HourlyRates.Standard, model.HourlyRate);
            Assert.Equal(shift.HourlyRates.BetweenBedtimeAndMidnight, model.HourlyRateBetweenBedtimeAndMidnight);
            Assert.Equal(shift.HourlyRates.AfterMidnight, model.HourlyRateAfterMidnight);
        }