Пример #1
0
            /// <summary>
            /// Invoke the method to get non sale tender transaction list for the given non sale tender type.
            /// </summary>
            /// <param name="request">Request for non sale tender service.</param>
            /// <returns>Returns the response for non sale tender operation get request.</returns>
            private static GetNonSaleTenderServiceResponse GetNonSaleTenderTransactions(GetNonSaleTenderServiceRequest request)
            {
                NonSalesTransaction tenderTransaction = StoreOperationServiceHelper.ConvertToNonSalesTenderTransaction(request.RequestContext, request.ShiftId, request.ShiftTerminalId, request.TransactionType);
                var getCurrentShiftNonSalesTransactionsdataServiceRequest = new GetCurrentShiftNonSalesTransactionsDataRequest(tenderTransaction, request.TransactionId);

                PagedResult <NonSalesTransaction> nonSaleOperationList = request.RequestContext.Runtime.Execute <EntityDataServiceResponse <NonSalesTransaction> >(getCurrentShiftNonSalesTransactionsdataServiceRequest, request.RequestContext).PagedEntityCollection;

                return(new GetNonSaleTenderServiceResponse(nonSaleOperationList));
            }
Пример #2
0
            /// <summary>
            /// Invoke the method to save non sale tender type transactions.
            /// </summary>
            /// <param name="request">Request for non sale tender transactions.</param>
            /// <returns>Returns the non sale tender transactions.</returns>
            private static SaveNonSaleTenderServiceResponse SaveNonSaleTenderTransactions(SaveNonSaleTenderServiceRequest request)
            {
                NonSalesTransaction nonSalesTransaction = StoreOperationServiceHelper.ConvertToNonSalesTenderTransaction(request.RequestContext, request);

                // If the previously created tender transaction response did not get received due to network connection issue.
                // On client retry, check if it was already saved. If true, returns saved object.
                var getCurrentShiftNonSalesTransactionsdataServiceRequest = new GetCurrentShiftNonSalesTransactionsDataRequest(nonSalesTransaction, request.TransactionId);
                NonSalesTransaction savedNonSalesTransaction = request.RequestContext.Runtime.Execute <EntityDataServiceResponse <NonSalesTransaction> >(getCurrentShiftNonSalesTransactionsdataServiceRequest, request.RequestContext).PagedEntityCollection.FirstOrDefault();

                if (savedNonSalesTransaction == null)
                {
                    var saveNonSalesTransactionsdataServiceRequest = new SaveNonSalesTransactionDataRequest(nonSalesTransaction);
                    savedNonSalesTransaction = request.RequestContext.Runtime.Execute <SingleEntityDataServiceResponse <NonSalesTransaction> >(saveNonSalesTransactionsdataServiceRequest, request.RequestContext).Entity;
                }

                return(new SaveNonSaleTenderServiceResponse(savedNonSalesTransaction));
            }
Пример #3
0
            private EntityDataServiceResponse <NonSalesTransaction> GetCurrentShiftNonSalesTransactions(GetCurrentShiftNonSalesTransactionsDataRequest request)
            {
                ThrowIf.Null(request, "request");
                ThrowIf.Null(request.NonSalesTransaction, "request.NonSalesTransaction");

                string transactionId = request.NonSalesTransactionId;

                if (string.IsNullOrWhiteSpace(request.NonSalesTransactionId))
                {
                    transactionId = string.Empty;
                }

                var transaction = request.NonSalesTransaction;
                var parameters  = new ParameterSet();

                parameters[DatabaseAccessor.ChannelIdVariableName] = request.RequestContext.GetPrincipal().ChannelId;
                parameters["@nvc_TRANSACTIONTYPE"] = transaction.TransactionTypeValue;
                parameters["@nvc_TENDERTYPE"]      = transaction.TenderTypeId;
                parameters["@nvc_BATCHTERMINALID"] = transaction.ShiftTerminalId;
                parameters["@bi_BATCHID"]          = transaction.ShiftId;
                parameters["@nvc_TransactionId"]   = transactionId;

                PagedResult <NonSalesTransaction> results;

                using (SqlServerDatabaseContext sqlServerDatabaseContext = new SqlServerDatabaseContext(request))
                {
                    results = sqlServerDatabaseContext.ExecuteStoredProcedure <NonSalesTransaction>("GETCURRENTSHIFTNONSALETENDERS", parameters);
                }

                return(new EntityDataServiceResponse <NonSalesTransaction>(results));
            }