public async Task <List <ProductModel> > Sort(string sortOption)
        {
            List <ProductModel> sortedProductList = null;

            if (!string.IsNullOrEmpty(sortOption))
            {
                sortOption = sortOption.ToLower();
                var productList = await _externalService.GetProductList();

                switch (sortOption)
                {
                case "low":
                    sortedProductList = productList.OrderBy(p => p.Price).ToList();
                    break;

                case "high":
                    sortedProductList = productList.OrderByDescending(p => p.Price).ToList();
                    break;

                case "recommended":
                    sortedProductList = GetRecommendedProductList(productList).Result;
                    break;

                case "ascending":
                    sortedProductList = productList.OrderBy(p => p.Name).ToList();
                    break;

                case "descending":
                    sortedProductList = productList.OrderByDescending(p => p.Name).ToList();
                    break;

                default:
                    break;
                }
            }
            return(sortedProductList);
        }