Example #1
0
        //Would be revisiting to modify the actual way of call method.
        public void CaseHistoryControllerTest_Success()
        {
            // Arrange
            LidTypeEnum           LIDType = LidTypeEnum.CustomerNbr;
            string                LID     = "";
            PaginationCaseHistory page    = new PaginationCaseHistory();

            string ExtraId = null;
            int    lid     = 648988;
            int    CaseID  = 8715123;

            MockCaseHistoryRepository mockCaseHistoryRepository = new MockCaseHistoryRepository();
            ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > expectedResult = mockCaseHistoryRepository.GetMockData(lid);

            IOptions <DataContext>     optionsAccessor   = Substitute.For <IOptions <DataContext> >();
            IDatabaseConnectionFactory connectionFactory = Substitute.For <IDatabaseConnectionFactory>();

            ICaseHistoryRepository mockRepo = Substitute.For <ICaseHistoryRepository>();

            mockRepo.GetCaseHistoryInfo(LIDType, LID, ExtraId, page).ReturnsForAnyArgs(expectedResult.Result);

            // Act
            var caseHistory = mockRepo.GetCaseHistoryInfo(LIDType, "648988", ExtraId, page).Result;

            var actualRecord = (IList <Wp.CIS.LynkSystems.Model.CaseHistory>)caseHistory.ReturnedRecords;

            string caseInfo = actualRecord.Where(x => x.caseId == CaseID).FirstOrDefault().caseLevel;

            //// Assert

            Assert.Equal(((IList <Wp.CIS.LynkSystems.Model.CaseHistory>)actualRecord).Count, 6);

            Assert.Equal(caseInfo, "Customer");
        }
Example #2
0
        public async Task CaseHistoryApiTest_Exception()
        {
            // Arrange
            LidTypeEnum LIDType = LidTypeEnum.CustomerNbr;
            string      LID     = "";

            PaginationCaseHistory page = new PaginationCaseHistory();

            int lid = 648988;

            string ExtraId = null;


            MockCaseHistoryRepository mockCaseHistoryRepository = new MockCaseHistoryRepository();
            ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > expectedResult = mockCaseHistoryRepository.GetMockData(lid);

            IOptions <Settings> optionsAccessor = Substitute.For <IOptions <Settings> >();

            ICaseHistoryRepository mockRepo = Substitute.For <ICaseHistoryRepository>();

            ICaseHistoryApi casehistoryApi = Substitute.For <ICaseHistoryApi>();

            IDistributedCache mockCache = Substitute.For <IDistributedCache>();

            mockRepo.GetCaseHistoryInfo(LIDType, LID, ExtraId, page).Throws(new Exception());

            casehistoryApi = new CaseHistoryApi(optionsAccessor, mockRepo);

            //Assert
            await Assert.ThrowsAsync <Exception>(() => casehistoryApi.GetCaseHistory(LIDType, LID, ExtraId, page));
        }
Example #3
0
        private CaseHistoryInput GetCaseHistoryObject()
        {
            CaseHistoryInput pageInput = new CaseHistoryInput();

            pageInput.lidTypeEnum = Wp.CIS.LynkSystems.Model.Enums.LidTypeEnum.Terminal;
            pageInput.LIDValue    = "123456";

            PaginationCaseHistory page = new PaginationCaseHistory();

            page.FilterCaseLevel = "Term";
            page.PageSize        = 100;
            page.SortField       = "CASEID";
            page.SortFieldByAsc  = true;

            pageInput.Page = page;
            return(pageInput);
        }
Example #4
0
        public async Task <IActionResult> Get([FromBody] CaseHistoryInput pageinput)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                LidTypeEnum           LIDType = pageinput.lidTypeEnum;
                string                LID     = pageinput.LIDValue;
                string                ExtraId = pageinput.ExtraID;
                PaginationCaseHistory page    = pageinput.Page;
                var key = _localizer["UniqueKey"] + "_" + LID;

                if (page.SkipRecordNumber > 0)
                {
                    key = key + "_" + page.SkipRecordNumber;
                }

                var result = (await _caseHistory.GetCaseHistory(LIDType, LID, ExtraId, page));

                if (result.Result != null && result.Result.TotalNumberOfRecords > 0)
                {
                    await _operation.AddCacheAsync(key, result.Result);

                    return(Ok(result.Result));
                }
                else
                {
                    var msg = this._localizer["NoDataFound"]?.Value;
                    result.Result.ModelMessage = msg;
                    return(Ok(result.Result));
                }
            }
            catch (Exception ex)
            {
                var msg = this._localizer?["InternalServerError"]?.Value;
                await _loggingFacade.LogExceptionAsync(ex, this.HttpContext?.Request?.Headers["UserName"], LogLevels.Error, "Error in CaseHistoryGet()", CancellationToken.None);

                return(this.StatusCode((int)System.Net.HttpStatusCode.InternalServerError, msg));
            }
        }
Example #5
0
        public async Task <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > GetCaseHistoryInfo(LidTypeEnum lidtype, string lid, string extraId, PaginationCaseHistory page)
        {
            try
            {
                var response = new GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory>();


                return(await this._connectionFactory.GetConnection(async c =>
                {
                    var p = new DynamicParameters();

                    p.Add("LIDType", lidtype, DbType.Int32);
                    p.Add("LID", lid, DbType.String);
                    p.Add("MaximumRecsLimit", maxrecordslimit, DbType.String);

                    if (extraId != null)
                    {
                        p.Add("ExtraID", extraId, DbType.String);
                    }

                    p.Add("PageSize", page.PageSize, DbType.Int32);

                    p.Add("SkipRecords", page.SkipRecordNumber, DbType.Int32);

                    if (page.SortField != null)
                    {
                        p.Add("SortField", page.SortField, DbType.String);
                    }

                    p.Add("SortOrder", page.SortFieldByAsc, DbType.Boolean);

                    if (page.FilterCaseId != null)
                    {
                        p.Add("FilterCaseId", page.FilterCaseId, DbType.String);
                    }

                    if (page.FilterCaseDesc != null)
                    {
                        p.Add("FilterCaseDesc", page.FilterCaseDesc, DbType.String);
                    }

                    if (page.FilterOrgDeptName != null)
                    {
                        p.Add("FilterOrgDeptName", page.FilterOrgDeptName, DbType.String);
                    }

                    if (page.FilterCaseLevel != null)
                    {
                        p.Add("FilterCaseLevel", page.FilterCaseLevel, DbType.String);
                    }

                    if (true == page.FilterCreateDate.HasValue)
                    {
                        var beginCreateDate = new DateTime(page.FilterCreateDate.Value.Year, page.FilterCreateDate.Value.Month, page.FilterCreateDate.Value.Day);
                        var endCreateDate = new DateTime(page.FilterCreateDate.Value.Year, page.FilterCreateDate.Value.Month, page.FilterCreateDate.Value.Day, 23, 59, 59);
                        p.Add("FilterBeginCreateDate", beginCreateDate, DbType.Date);
                        p.Add("FilterEndCreateDate", endCreateDate, DbType.Date);
                    }

                    p.Add("TotalRecords", DbType.Int32, direction: ParameterDirection.Output);

                    response.ReturnedRecords = await c.QueryAsync <Wp.CIS.LynkSystems.Model.CaseHistory>(sql: "CISPlus.uspCISPlusGetCaseHistoryRecords", param: p,
                                                                                                         commandType: CommandType.StoredProcedure);

                    response.TotalNumberOfRecords = p.Get <int>("TotalRecords");


                    return response;
                }));
            }
            catch (System.Exception)
            {
                throw;
            }
        }
Example #6
0
        public async Task <ApiResult <GenericPaginationResponse <CaseHistory> > > GetCaseHistory(LidTypeEnum lidtype, string lid, string extraId, PaginationCaseHistory page)
        {
            ApiResult <GenericPaginationResponse <CaseHistory> > response = new ApiResult <GenericPaginationResponse <CaseHistory> >();

            try
            {
                response.Result = await _casehistoryrepository.GetCaseHistoryInfo(lidtype, lid, extraId, page);
            }
            catch (Exception)
            {
                throw;
            }
            return(response);
        }