public async Task <IActionResult> Index() { return(await Task.Run(() => { var delayedResponse = _productService.DoGetProducts(); delayedResponse.Wait(); DoGetProductsResponse doGetProductsResponse = delayedResponse.Result; IEnumerable <ProductModel> products = doGetProductsResponse.Products; var productsListViewModel = doGetProductsResponse.IsSuccess ? new ProductsListViewModel(products) : new ProductsListViewModel(doGetProductsResponse.Message); return View(productsListViewModel); })); }
public Task <DoGetProductsResponse> DoGetProducts(DoGetProductsRequest request = null) { // TODO: Get paging & filter info from request, and apply them as filter's params. return(Task.Run(() => { DoGetProductsResponse response = new DoGetProductsResponse(); IEnumerable <ProductModel> products = _productRepo.FindAll(); if ((products != null) && (products.Count() > 0)) { response.IsSuccess = true; response.Message = "Success!"; response.Products = products; } else { response.Message = "Products are not available."; response.Products = new ProductModel[0]; } return response; })); }