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); } } }
private static void OnChangeShiftStatusExecuting(ChangeShiftStatusRequest request) { switch (request.ToStatus) { case ShiftStatus.Closed: bool isNonDrawerOperationCheckRequired = IsNonDrawerOperationCheckRequired(request.RequestContext, request.ShiftId); request.RequestContext.Execute <NullResponse>(new CheckAccessServiceRequest(RetailOperation.CloseShift, isNonDrawerOperationCheckRequired)); break; case ShiftStatus.BlindClosed: request.RequestContext.Execute <NullResponse>(new CheckAccessServiceRequest(RetailOperation.BlindCloseShift)); break; case ShiftStatus.Suspended: request.RequestContext.Execute <NullResponse>(new CheckAccessServiceRequest(RetailOperation.SuspendShift)); break; } }
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); } } }
/// <summary> /// Initializes a new instance of the <see cref="ShiftTransitionHelper"/> class. /// </summary> /// <param name="context">The request context.</param> /// <param name="request">The request.</param> internal ShiftTransitionHelper(RequestContext context, ChangeShiftStatusRequest request) { this.context = context; this.request = request; this.InitShiftTransitions(); }