/// <summary> /// Get criteria group item. /// </summary> /// <param name="criteriaId">The identity criteria group.</param> /// <returns></returns> private IEnumerable <CriteriaGroupViewModel> GetCriteriaGroups(int criteriaId) { var criteriaGroup = _mapper.Map <IEnumerable <CriteriaGroup>, IEnumerable <CriteriaGroupViewModel> >( _unitOfWork.GetRepository <CriteriaGroup>().GetCache(x => x.CriteriaId == criteriaId)); var groupIds = criteriaGroup.Select(x => x.Id).ToArray(); var criteriaItems = _unitOfWork.GetRepository <CriteriaItem>().GetCache(x => groupIds.Contains(x.CriteriaGroupId.Value)); var kpiGroupInfo = _unitOfWork.GetRepository <KpiGroup>().GetCache(); foreach (var item in criteriaGroup) { var kpiGroupItem = kpiGroupInfo.FirstOrDefault(x => x.Id == item.KpiGroupId); if (kpiGroupItem != null) { item.KpiGroupNameTh = kpiGroupItem.KpiGroupNameTh; item.KpiGroupNameEn = kpiGroupItem.KpiGroupNameEn; item.KpiGroupShortTextTh = kpiGroupItem.KpiGroupShortTextTh; item.KpiGroupShortTextEn = kpiGroupItem.KpiGroupShortTextEn; } item.CriteriaItems = _kpiGroup.GetKpiItemDisplayCriteria(item.KpiGroupId).ToList(); this.GetCriteriaItems(item.CriteriaItems, criteriaItems.Where(x => x.CriteriaGroupId == item.Id)); } return(criteriaGroup); }
public IActionResult GetKpiIteDisplayCriteria(int id) { return(Ok(_kpiGroup.GetKpiItemDisplayCriteria(id))); }