/// <summary> /// Simple, non-critical maintenance task assigned to the shift closing event. /// </summary> /// <param name="requestContext">The request context.</param> private void PurgeSalesTransactionData(RequestContext requestContext) { if (requestContext == null || requestContext.Runtime == null) { return; } // Get retention period in days from device configuration Terminal terminal = requestContext.GetTerminal(); DeviceConfiguration deviceConfiguration = requestContext.GetDeviceConfiguration(); // Purge transactions PurgeSalesTransactionsDataRequest dataServiceRequest = new PurgeSalesTransactionsDataRequest(terminal.ChannelId, terminal.TerminalId, deviceConfiguration.RetentionDays); requestContext.Runtime.Execute <NullResponse>(dataServiceRequest, this.Context); }
private static NullResponse PurgeSalesTransactions(PurgeSalesTransactionsDataRequest request) { ThrowIf.Null(request, "request"); if (request.RetentionDays > 0) { try { var parameters = new ParameterSet { { "@bi_ChannelId", request.ChannelId }, { "@vc_TerminalId", request.TerminalId }, { "@i_RetentionDays", request.RetentionDays }, { "@f_PurgeOrder", 1 } // purge customer orders first }; using (SqlServerDatabaseContext databaseContext = new SqlServerDatabaseContext(request.RequestContext)) { databaseContext.ExecuteStoredProcedureNonQuery(PurgeSalesTransactionsSpProcName, parameters); } // now purge retail transactions parameters["@f_PurgeOrder"] = 0; using (SqlServerDatabaseContext databaseContext = new SqlServerDatabaseContext(request.RequestContext)) { databaseContext.ExecuteStoredProcedureNonQuery(PurgeSalesTransactionsSpProcName, parameters); } } catch (Exception exception) { RetailLogger.Log.CrtDataAccessPurgeSalesTransactionFailure(exception); } } return(new NullResponse()); }