public async Task UpdateTimedAppointment()
        {
            const int workOrderId = 100001;

            await CreateWorkOrder(workOrderId);

            const string expectedReason      = "reason";
            var          existingAppointment = new Appointment
            {
                Date              = DateTime.UtcNow,
                StartTime         = DateTime.UtcNow,
                EndTime           = DateTime.UtcNow.AddHours(5),
                WorkOrderId       = workOrderId,
                AppointmentReason = "not" + expectedReason
            };
            await InMemoryDb.Instance.Appointments.AddAsync(existingAppointment);

            await InMemoryDb.Instance.SaveChangesAsync();

            var startTime = existingAppointment.StartTime.AddDays(7);
            var endTime   = existingAppointment.EndTime.AddDays(7);

            await _classUnderTest.SetTimedBooking(workOrderId, startTime, endTime, expectedReason);

            var appointment = await InMemoryDb.Instance.Appointments.SingleOrDefaultAsync(a => a.WorkOrderId == workOrderId);

            appointment.Should().NotBeNull();
            appointment.WorkOrderId.Should().Be(workOrderId);
            appointment.Date.Should().Be(startTime.Date);
            appointment.StartTime.Should().Be(startTime);
            appointment.EndTime.Should().Be(endTime);
            appointment.AppointmentReason.Should().Be(expectedReason);
        }
        public async Task UpdateSlotAppointment()
        {
            const int workOrderId = 100001;
            var       startTime   = new DateTime().AddHours(8);
            var       endTime     = new DateTime().AddHours(12);
            var       ids         = SeedAppointmentData("contractor", new[]
            {
                new DaySeedModel(DateTime.UtcNow.DayOfWeek, 1),
            }, new[]
            {
                new AppointmentSeedModel("AM", startTime, endTime)
            });
            var existingAppointment = new Appointment
            {
                Date        = DateTime.UtcNow,
                StartTime   = DateTime.UtcNow,
                EndTime     = DateTime.UtcNow.AddHours(5),
                WorkOrderId = workOrderId
            };
            await InMemoryDb.Instance.Appointments.AddAsync(existingAppointment);

            await InMemoryDb.Instance.SaveChangesAsync();

            var appointmentRef = GenerateAppointmentRef(ids.First(), DateTime.UtcNow);
            await _classUnderTest.CreateSlotBooking(appointmentRef, workOrderId);

            var appointment = await InMemoryDb.Instance.Appointments.SingleOrDefaultAsync(a => a.WorkOrderId == workOrderId);

            appointment.Should().NotBeNull();
            appointment.StartTime.Should().Be(startTime);
            appointment.EndTime.Should().Be(endTime);
        }