public async Task <GenericPaginationResponse <TransactionsInquiry> > GetTransactionInquiryCardNoResults(int terminalnbr, string cardno, int customerid, string startdate, string enddate, int?searchId, int cardtype, int skiprecords, int pagesize)
        {
            var response = new GenericPaginationResponse <TransactionsInquiry>
            {
                SkipRecords = skiprecords,
                PageSize    = pagesize
            };

            return(await this._connectionFactory.GetConnection(async c =>
            {
                TransactionsInquiry dbinfo = new TransactionsInquiry();

                var p = new DynamicParameters();

                p.Add("LID", terminalnbr, DbType.Int32);
                p.Add("PAN", cardno.ToString(), DbType.Int32);
                p.Add("CustomerID", customerid, DbType.Int32);
                p.Add("BeginDate", startdate, DbType.DateTime);
                p.Add("EndDate", enddate, DbType.DateTime);
                p.Add("SearchId", searchId, DbType.Int32);
                p.Add("CardType", cardtype, DbType.Int32);
                p.Add("SkipRecords", skiprecords, DbType.Int32);
                p.Add("PageSize", pagesize, DbType.Int32);
                p.Add("TotalRecords", DbType.Int32, direction: ParameterDirection.Output);
                response.ReturnedRecords = await c.QueryAsync <Wp.CIS.LynkSystems.Model.TransactionsInquiry>(sql: "CISNOW_HistoryViewerTransactionsByPan", param: p, commandType: CommandType.StoredProcedure);
                response.TotalNumberOfRecords = p.Get <int>("TotalRecords");
                return response;
            }));
        }
Beispiel #2
0
        public async Task TransactionsInqDetailsInfoRetrievalFromCache_NotAvailableInCache()
        {
            string id = "10006143";

            var expectedRecord = new TransactionsInquiry
            {
                ARN          = "Test ARN Code",
                CompleteCode = 555555
            };

            IOptions <Settings> appSettings = Substitute.For <IOptions <Settings> >();
            ITransactionsInqDetailsInfoRepository mockRepo = Substitute.For <ITransactionsInqDetailsInfoRepository>();

            mockRepo.GetTransactionInquiryCardNoResults(1, "", 2, "", "", null, 3, 4, 5).ReturnsForAnyArgs(new GenericPaginationResponse <TransactionsInquiry>());
            //var mockRepo = new MockTransactionsInqTerminalInfoRepository();
            mockRepo = new MockTransactionsInqDetailsInfoRepository();

            ITransactionsInqDetailsInfoTierRepository mockRepo2 = Substitute.For <ITransactionsInqDetailsInfoTierRepository>();

            mockRepo2 = new MockTransactionsInqDetailsInfoTierRepository();



            IDistributedCache mockCache = FakeCache();

            mockCache = new MockCacheTransactionsInqDetailsInfoTier();

            ITransactionsInquiryDetailsInfoApi     detailsinfo     = new TransactionInquiryDetailsInfoApi(appSettings, mockRepo);
            ITransactionsInquiryDetailsInfoTierApi detailstierinfo = new TransactionsInquiryDetailsTierApi(appSettings, mockRepo2);
            TransactionsInquiryGeneralInfo         transinqgeninfo = new TransactionsInquiryGeneralInfo();

            //Retrieving from Cache first.
            var cacheRetrievedData
                = new Operation(mockCache).RetrieveCache(id.ToString(), new Wp.CIS.LynkSystems.Model.TransactionsInquiryGeneralInfo());

            //Does not exist in mock Cache. Hence null
            Assert.Equal(cacheRetrievedData, null);

            //since no data in cache, now call the controller. The controller retrieves data and also adds to cache
            TransactionsInquiryDetailsInfoController controller = new TransactionsInquiryDetailsInfoController(mockCache, detailsinfo, detailstierinfo, null);

            //Retrieve the data from controller and also check for the data in the cache.
            var detailsdata = await controller.Get(transinqgeninfo, 1, 10006144, "6/18/2015", "7/18/2015", 0, "0", 10, 5);


            var actualRecord       = ((Microsoft.AspNetCore.Mvc.ObjectResult)detailsdata).Value;
            var cacheretrieveddata = new Operation(mockCache).RetrieveCache(id.ToString(), new Wp.CIS.LynkSystems.Model.TransactionsInquiryGeneralInfo());

            var firstRecord = ((GenericPaginationResponse <TransactionsInquiry>)actualRecord).ReturnedRecords.FirstOrDefault();

            // Check the retrieved data
            Assert.Equal(firstRecord.ARN, "Test ARN Code");

            // Make sure the data retrieved from controller is same as the data from the cache
            //Assert.Equal(JsonConvert.SerializeObject(actualRecord), JsonConvert.SerializeObject(cacheretrieveddata));
            Assert.Equal(JsonConvert.SerializeObject(firstRecord), JsonConvert.SerializeObject(expectedRecord));
        }