private static void OnGetIncomeExpenseAccountsExecuting(GetIncomeExpenseAccountsDataRequest request)
            {
                switch (request.IncomeExpenseType)
                {
                case IncomeExpenseAccountType.Income:
                    request.RequestContext.Execute <NullResponse>(new CheckAccessServiceRequest(RetailOperation.IncomeAccounts));
                    break;

                case IncomeExpenseAccountType.Expense:
                    request.RequestContext.Execute <NullResponse>(new CheckAccessServiceRequest(RetailOperation.ExpenseAccounts));
                    break;
                }
            }
Ejemplo n.º 2
0
            /// <summary>
            /// Gets the Income and expense accounts.
            /// </summary>
            /// <param name="request">Get income expense accounts data request.</param>
            /// <returns>Returns the collection of income expense account.</returns>
            private EntityDataServiceResponse <IncomeExpenseAccount> GetIncomeExpenseAccounts(GetIncomeExpenseAccountsDataRequest request)
            {
                ThrowIf.Null(request, "request");
                ThrowIf.Null(request.QueryResultSettings, "request.QueryResultSettings");

                ChannelL2CacheDataStoreAccessor level2CacheDataAccessor = this.GetChannelL2CacheDataStoreAccessor(request.RequestContext);

                bool found;
                bool updateL2Cache;
                PagedResult <IncomeExpenseAccount> result = DataManager.GetDataFromCache(() => level2CacheDataAccessor.GetIncomeExpenseAccounts(request.IncomeExpenseType, request.QueryResultSettings), out found, out updateL2Cache);

                if (!found)
                {
                    string dataAreaId  = request.RequestContext.GetChannelConfiguration().InventLocationDataAreaId;
                    string storeNumber = request.RequestContext.GetOrgUnit().OrgUnitNumber;

                    var parameters = new ParameterSet();

                    parameters["@nvc_StoreId"]    = storeNumber;
                    parameters["@nvc_DataAreaId"] = dataAreaId;
                    parameters["@i_AccountType"]  = request.IncomeExpenseType;

                    using (SqlServerDatabaseContext sqlServerDatabaseContext = new SqlServerDatabaseContext(request))
                    {
                        result = sqlServerDatabaseContext.ExecuteStoredProcedure <IncomeExpenseAccount>(GetRetailIncomeExpenseAccounts, parameters);
                    }

                    updateL2Cache &= result != null &&
                                     result.Results.Count < MaxCachedCollectionSize;
                }

                if (updateL2Cache)
                {
                    level2CacheDataAccessor.PutIncomeExpenseAccounts(request.IncomeExpenseType, request.QueryResultSettings, result);
                }

                return(new EntityDataServiceResponse <IncomeExpenseAccount>(result));
            }