private static void VerifyCompleteOrder(updateBooking updateBooking, WorkOrder workOrder, IList <ScheduleOfRatesModel> sorCodes, order drsOrder, string completionStatus) { var booking = drsOrder.theBookings.First(); updateBooking.updateBooking1.completeOrder.Should().BeTrue(); updateBooking.updateBooking1.resourceId.Should().Be(booking.theResources.First().resourceID); updateBooking.updateBooking1.transactionType.Should().Be(transactionTypeType.COMPLETED); ValidateBooking(updateBooking.updateBooking1.theBooking, booking, completionStatus); ValidateBookings(workOrder, sorCodes, updateBooking.updateBooking1.theBooking.theBookingCodes); updateBooking.updateBooking1.theBooking.theOrder.theBookings.Should().BeNull(); ValidateBusinessData(updateBooking.updateBooking1.theBooking.theOrder.theBusinessData, DrsBusinessDataNames.Status, "COMPLETED"); updateBooking.updateBooking1.theBooking.theOrder.Should().BeEquivalentTo(drsOrder, c => c .Excluding(o => o.status) .Excluding(o => o.theBookings) .Excluding(o => o.theBusinessData) ); updateBooking.updateBooking1.theBooking.theOrder.status.Should().Be(orderStatus.COMPLETED); var expectedStart = workOrder.ClosedDate - (booking.assignedEnd - booking.assignedStart) ?? booking.assignedStart; var expectedEnd = workOrder.ClosedDate ?? booking.assignedEnd; updateBooking.updateBooking1.startDateAndTime.Should().Be(expectedStart); updateBooking.updateBooking1.endDateAndTime.Should().Be(expectedEnd); }
public Task <updateBooking> BuildCompleteOrderUpdateBookingRequest(string sessionId, WorkOrder workOrder, order drsOrder, string bookingStatus = DrsBookingStatusCodes.Completed) { _logger.LogInformation($"Started building update booking for workOrder {workOrder.Id}"); var booking = drsOrder.theBookings.First(); booking.theOrder = drsOrder; booking.theOrder.theBusinessData = SetBusinessData(booking.theOrder.theBusinessData, DrsBusinessDataNames.Status, DrsBookingStatusCodes.Completed); booking.theOrder.theBookings = null; booking.theOrder.status = orderStatus.COMPLETED; booking.bookingCompletionStatus = bookingStatus; booking.bookingLifeCycleStatus = transactionTypeType.COMPLETED; booking.theBusinessData = SetBusinessData(booking.theBusinessData, DrsBusinessDataNames.TaskLifeCycleStatus, DrsTaskLifeCycleCodes.Completed); booking.theBookingCodes?.ToList().ForEach(bc => bc.itemValue = null); var resource = booking.theResources?.First(); _logger.LogInformation($"Building update with data: [ClosedDate: {workOrder.ClosedDate}] [booking AssignedEnd: {booking.assignedEnd}] [booking assignedStart {booking.assignedStart}]"); var updateBooking = new updateBooking { updateBooking1 = new xmbUpdateBooking { completeOrder = true, startDateAndTime = workOrder.ClosedDate - (booking.assignedEnd - booking.assignedStart) ?? booking.assignedStart, endDateAndTime = workOrder.ClosedDate ?? booking.assignedEnd, resourceId = resource?.resourceID, transactionType = transactionTypeType.COMPLETED, sessionId = sessionId, theBooking = booking, } }; _logger.LogInformation($"Finished building update booking for workOrder {workOrder.Id}: [StartDateAndTime: {updateBooking.updateBooking1.startDateAndTime}] [EndDateAndTime: {updateBooking.updateBooking1.endDateAndTime}] [resourceId: {updateBooking.updateBooking1.resourceId}]"); return(Task.FromResult(updateBooking)); }