public static void CloseShift(ChangeShiftStatusRequest request, ChangeShiftStatusResponse response) { ThrowIf.Null(request, "CreateShiftRequest"); ThrowIf.Null(response, "CreateShiftResponse"); InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest( "RemoveOpenedShift", response.Shift.StoreRecordId, response.Shift.TerminalId, response.Shift.ShiftId); InvokeExtensionMethodRealtimeResponse RTSResponse = request.RequestContext.Execute <InvokeExtensionMethodRealtimeResponse>(extensionRequest); ReadOnlyCollection <object> results = RTSResponse.Result; bool success = Convert.ToBoolean(results[0]); if (!success) { using (var databaseContext = new DatabaseContext(request)) { ParameterSet parameters = new ParameterSet(); parameters["@CHANNEL"] = response.Shift.StoreRecordId; parameters["@TERMINALID"] = response.Shift.TerminalId; parameters["@SHIFTID"] = response.Shift.ShiftId; databaseContext.ExecuteStoredProcedureNonQuery("[ext].[DeleteClosedShift]", parameters); } } }
public static void ChangeShiftStatus(ChangeShiftStatusRequest request, ChangeShiftStatusResponse response) { ThrowIf.Null(request, "CreateShiftRequest"); ThrowIf.Null(response, "CreateShiftResponse"); InvokeExtensionMethodRealtimeRequest extensionRequest = new InvokeExtensionMethodRealtimeRequest( "ChangeShiftStatus", response.Shift.StoreRecordId, response.Shift.TerminalId, response.Shift.ShiftId, Convert.ToInt32(response.Shift.Status), response.Shift.CurrentTerminalId, response.Shift.CurrentStaffId); InvokeExtensionMethodRealtimeResponse RTSResponse = request.RequestContext.Execute <InvokeExtensionMethodRealtimeResponse>(extensionRequest); ReadOnlyCollection <object> results = RTSResponse.Result; bool success = Convert.ToBoolean(results[0]); if (!success) { using (var databaseContext = new DatabaseContext(request)) { ParameterSet parameters = new ParameterSet(); parameters["@CHANNEL"] = response.Shift.StoreRecordId; parameters["@TERMINALID"] = response.Shift.TerminalId; parameters["@SHIFTID"] = response.Shift.ShiftId; parameters["@STATUS"] = response.Shift.Status; parameters["@STATUSDATETIMEUTC"] = response.Shift.StatusDateTime; parameters["@CURRENTSTAFFID"] = response.Shift.CurrentStaffId; parameters["@CURRENTTERMINALID"] = response.Shift.CurrentTerminalId; databaseContext.ExecuteStoredProcedureNonQuery("[ext].[ChangeShiftStaus]", parameters); } } }