public ActionResult ArticleDetail(int id)
        {
            //call api
            var url = ApiEndPoint.GenerateGetArticleByIdUrl(id);

            try
            {
                using (HttpClient httpClient = new HttpClient())
                {
                    HttpResponseMessage runResult = httpClient.GetAsync(url).Result;
                    if (!runResult.IsSuccessStatusCode)
                    {
                        //request failed
                        TempData["AritcleDetailStatus"] = "Get article detais infor failed at index: " + id;
                        return(RedirectToAction("ListPendingArticle"));
                    }
                    else
                    {
                        var jsonString = runResult.Content.ReadAsStringAsync().Result;
                        var article    = JsonConvert.DeserializeObject <Article>(jsonString);
                        return(View(article));
                    }
                }
            }
            catch (Exception err)
            {
                Debug.WriteLine(err.Message);
                TempData["AritcleDetailStatus"] = $"{err.Message} at index: {id}";
                return(RedirectToAction("ListPendingArticle"));
            }
        }
        public ActionResult EditArticle(int id)
        {
            var url = ApiEndPoint.GenerateGetArticleByIdUrl(id);

            try
            {
                using (HttpClient httpClient = new HttpClient())
                {
                    ViewBag.ListCategory = GetCategory();
                    HttpResponseMessage runResult = httpClient.GetAsync(url).Result;
                    if (!runResult.IsSuccessStatusCode)
                    {
                        //request failed
                        TempData["AritcleDetailStatus"] = "Get article detais infor failed, Id :  " + id;
                        return(RedirectToAction("ArticleDetail", new { id = id }));
                    }
                    else
                    {
                        var jsonString = runResult.Content.ReadAsStringAsync().Result;
                        var article    = JsonConvert.DeserializeObject <Article>(jsonString);
                        return(View(article));
                    }
                }
            }
            catch (Exception err)
            {
                Debug.WriteLine(err.Message);
                Debug.WriteLine("Can not connect to API");
                TempData["AritcleDetailStatus"] = $"{err.Message} at index: {id}";
                return(RedirectToAction("ArticeDetail", new { id = id }));
            }
        }
Exemple #3
0
        public ActionResult Read(int?id)
        {
            var listCategory = GetCategory();
            var listArticle  = GetListArticle();

            if (id == null)
            {
                id = 1;
            }
            //call api
            var url = ApiEndPoint.GenerateGetArticleByIdUrl(id);

            try
            {
                using (HttpClient httpClient = new HttpClient())
                {
                    HttpResponseMessage runResult = httpClient.GetAsync(url).Result;
                    if (!runResult.IsSuccessStatusCode)
                    {
                        //request failed
                        TempData["AritcleDetailStatus"] = "Get article detais infor failed at index: " + id;
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        //request success
                        var jsonString     = runResult.Content.ReadAsStringAsync().Result;
                        var article        = JsonConvert.DeserializeObject <Article>(jsonString);
                        var relatedArticle = listArticle.Where(a => a.CategoryId == article.CategoryId).Take(6).ToList();
                        var viewModel      = new ReadArticleViewModel()
                        {
                            CurrentArticle  = article,
                            CurrentCategory = listCategory.Where(c => c.Id == article.CategoryId).FirstOrDefault(),
                            RelatedArticles = relatedArticle,
                            TopFiveLatest   = listArticle.Take(5).ToList()
                        };
                        return(View("Article", viewModel));
                    }
                }
            }
            catch (Exception err)
            {
                Debug.WriteLine(err.Message);
                TempData["AritcleDetailStatus"] = $"{err.Message} at index: {id}";
                return(RedirectToAction("Index"));
            }
        }