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; } }
/// <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)); }