public async Task <IResult> ListAttributes(DataHelperModel dataHelper, bool getAll) { var result = new Result { Operation = Operation.Read, Status = Status.Success }; try { var listAttr = _productAttributeRepository.ListAttributes(dataHelper.Search, getAll); if (!getAll) { var list = DataSortExtention.SortBy(listAttr, dataHelper.SortColumn, dataHelper.SortOrder); var resultCount = list.Count(); var pagedList = DataCount.Page(list, dataHelper.PageNumber, dataHelper.PageSize); var resultList = await pagedList.ToListAsync(); var pdtAttrViewModels = new List <ProductAttributeViewModel>(); pdtAttrViewModels = resultList.Select(p => { var pdtAttrViewModel = new ProductAttributeViewModel(); pdtAttrViewModel.MapFromModel(p); return(pdtAttrViewModel); }).ToList(); ResultModel resultModel = new ResultModel(); resultModel.ProductAttributeResult = pdtAttrViewModels; resultModel.TotalCount = resultCount; if (resultList.Count == 0) { result.Status = Status.Fail; result.StatusCode = HttpStatusCode.BadRequest; result.Message = "No records present."; return(result); } result.Body = resultModel; } else { var attributeList = await listAttr.ToListAsync(); result.Body = attributeList; } result.Status = Status.Success; result.StatusCode = HttpStatusCode.OK; return(result); } catch (Exception e) { result.Status = Status.Error; result.Message = e.Message; result.StatusCode = HttpStatusCode.InternalServerError; return(result); } }