/// <summary> /// Get Qualification List /// </summary> /// <returns></returns> public async Task <QualificationDataListDto> GetQualifications() { QualificationDataListDto qualificationList; qualificationList = _cacheService.Get <QualificationDataListDto>(QualificationKey, CacheItemType.QualificationMaster); if (qualificationList == null) { //get from Master var apiUrl = UrlExtension.Combine(APIBasePath, "/QualificationTypes/"); var qualifications = await _apiService.GetJsonAsync <List <CUQualificationType> >(apiUrl); qualificationList = new QualificationDataListDto(); //sorting of Course / subjects / Grade and hide by VisibleOle foreach (var qual in qualifications.Where(q => q.VisibleOle == true).OrderBy(q => q.Description)) { var newqualification = AutoMapper.Mapper.Map <QualificationDataDto>(qual); apiUrl = UrlExtension.Combine(APIBasePath, "/QualificationTypeSubjects/", qual.QualificationTypeCode); var subjects = await _apiService.GetJsonAsync <List <CUSubject> >(apiUrl); newqualification.Subjects = AutoMapper.Mapper.Map <List <SubjectDto> >(subjects.Where(q => q.VisibleOle == true)).OrderBy(s => s.SubjectTitle).ToList(); apiUrl = UrlExtension.Combine(APIBasePath, "/QualificationTypeResults/", qual.QualificationTypeCode); var results = await _apiService.GetJsonAsync <List <CUResult> >(apiUrl); newqualification.Results = AutoMapper.Mapper.Map <List <ResultDto> >(results.Where(q => q.VisibleOle == true)).OrderBy(r => r.Result).ToList(); qualificationList.Add(newqualification); } _cacheService.AddOrReplace(QualificationKey, Core.Enums.CacheItemType.QualificationMaster, qualificationList); } return(qualificationList); }