public async Task <IEnumerable <Category> > GetCategoriesTrAsync(string orderBy, bool showTrs) { orderBy = orderBy.ToLower(); if (!allowedOrderByQueries.Contains(orderBy)) { throw new InvalidOperationException($"Invalid \" {orderBy} \" orderBy query param. The allowed values are {string.Join(",", allowedOrderByQueries)}"); } var CategoriesTrEntities = await CategoriesTrRepository.GetCategoriesTr(orderBy, showTrs); var res = mapper.Map <IEnumerable <Category> >(CategoriesTrEntities); for (int i = 0; i < res.Count(); i++) { res.ElementAt(i).CantProducts = res.ElementAt(i).products.Count(); res.ElementAt(i).CantTrs = res.ElementAt(i).trs.Count(); if (!showTrs) { res.ElementAt(i).products = new List <Product>(); res.ElementAt(i).trs = new List <Tr>(); } } return(res); }