public async Task Execute(JobStatusUpdate jobStatusUpdate)
        {
            var workOrderId = int.Parse(jobStatusUpdate.RelatedWorkOrderReference.ID);

            var workOrder = await _repairsGateway.GetWorkOrder(workOrderId);

            var jsu = jobStatusUpdate.ToDb(workOrder);

            await _strategyFactory.ProcessActions(jsu);

            workOrder.IsSplit = jobStatusUpdate.IsSplit ?? workOrder.IsSplit;

            workOrder.IsOvertime = jobStatusUpdate.IsOvertime ?? workOrder.IsOvertime;

            await _repairsGateway.SaveChangesAsync();

            await _jobStatusUpdateGateway.CreateJobStatusUpdate(jsu);
        }
        public async Task UpdateSorCodes()
        {
            // Arrange
            string expectedCode = "expectedCode_UpdateWorkOrder";

            AddTestCode(expectedCode);
            var result = await CreateWorkOrder();

            var originalTasks = await GetTasks(result.Id);

            RepairsApi.V2.Generated.WorkElement workElement = TransformTasksToWorkElement(originalTasks);
            AddRateScheduleItem(workElement, expectedCode, 10);
            JobStatusUpdate request = CreateUpdateRequest(result.Id, workElement);

            // Act
            var code = await Post("/api/v2/jobStatusUpdate", request);

            var newTasks = await GetTasks(result.Id);

            // Assert
            code.Should().Be(HttpStatusCode.OK);
            newTasks.Count().Should().Be(originalTasks.Count() + 1);
        }