public IHttpActionResult GetTags(string filterName, int page = 1, int pageSize = 10, string sortBy = "id", string sortDirection = "asc") { try { _logger.Debug(string.Format("ini process - GetAll,idUser: {0}", CurrentIdUser)); List <FilterOption> filters = new List <FilterOption>(); if (!string.IsNullOrEmpty(filterName)) { filters.Add(new FilterOption { Field = "Name", Value = filterName, Sign = "%" }); } List <string> selectColumnsList = new List <string> { "Id", "Name", "State" }; List <Tag> entities = _tagBL.GetAll(filters, page, pageSize, sortBy, sortDirection, selectColumnsList); List <Setting> settingList = _commonBL.GetByIdCategorySetting((int)EnumCategorySetting.States); var result = from entity in entities select new { entity.Id, entity.Name, entity.State, StateName = settingList.SingleOrDefault(x => x.Id == entity.State).Name }; var pagedRecord = new PagedList { Content = result.ToList(), TotalRecords = _tagBL.CountGetAll(filters, page, pageSize), CurrentPage = page, PageSize = pageSize }; _logger.Debug(string.Format("finish GetAll , idUser: {0}", CurrentIdUser)); return(Ok(pagedRecord)); } catch (Exception ex) { LogError(ex); return(InternalServerError(ex)); } }