/// <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);
            }
Exemplo n.º 2
0
            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());
            }