Direct as in recommendation from details page
Inheritance: IDetailsPageArgs
        private View RecomItemDelegate(int i, DirectRecommendationData animeReviewData, View convertView)
        {
            var view = convertView;
            FlowTextView txt = null;
            if (view == null)
            {
                view = MainActivity.CurrentContext.LayoutInflater.Inflate(Resource.Layout.AnimeRecomItem,null);
                txt = view.FindViewById<FlowTextView>(Resource.Id.AnimeRecomItemRecomContent);
                txt.TextColor = ResourceExtension.BrushText;
                txt.SetTypeface(Typeface.Create(Typeface.Default, TypefaceStyle.Normal));     
                txt.SetTextSize(_pixelSize);         
            }

            view.Tag = new JavaObjectWrapper<DirectRecommendationData>(animeReviewData);

            view.FindViewById<TextView>(Resource.Id.AnimeRecomItemShowTitle).Text = animeReviewData.Title;
            view.FindViewById<TextView>(Resource.Id.AnimeRecomItemShowType).Text = animeReviewData.Type.ToString();
            txt = txt ?? view.FindViewById<FlowTextView>(Resource.Id.AnimeRecomItemRecomContent);
            txt.Text = animeReviewData.Description;
            

            var img = view.FindViewById<ImageViewAsync>(Resource.Id.AnimeRecomItemImage);
            ImageService.Instance.LoadUrl(animeReviewData.ImageUrl).FadeAnimation(true, true).Into(img);

            

            return view;
        }
        public async Task<List<DirectRecommendationData>> GetDirectRecommendations(bool force = false)
        {
            var output = force
                ? new List<DirectRecommendationData>()
                : await DataCache.RetrieveDirectRecommendationData(_animeId, _animeMode) ??
                  new List<DirectRecommendationData>();
            if (output.Count != 0) return output;

            var raw = await GetRequestResponse(false);
            if (string.IsNullOrEmpty(raw))
                return null;

            var doc = new HtmlDocument();
            doc.LoadHtml(raw);
            try
            {
                var recommNodes = doc.DocumentNode.Descendants("div")
                    .Where(
                        node =>
                            node.Attributes.Contains("class") &&
                            node.Attributes["class"].Value ==
                            HtmlClassMgr.ClassDefs["#DirectRecomm:recommNode:class"]).Take(Settings.RecommsToPull);

                foreach (var recommNode in recommNodes)
                {
                    try
                    {
                        var current = new DirectRecommendationData();

                        var tds = recommNode.Descendants("td").Take(2).ToList();
                        var img = tds[0].Descendants("img").First().Attributes["data-src"].Value;
                        if (!img.Contains("questionmark"))
                        {
                            img = Regex.Replace(img, @"\/r\/\d+x\d+", "");
                            current.ImageUrl = img.Substring(0, img.IndexOf('?'));
                        }
                        current.Description = WebUtility.HtmlDecode(tds[1].Descendants("div").First(
                            node =>
                                node.Attributes.Contains("class") &&
                                node.Attributes["class"].Value ==
                                HtmlClassMgr.ClassDefs["#DirectRecomm:recommNode:descClass"])
                            .Descendants("div")
                            .First().InnerText.Trim().Replace("&nbsp", "").Replace("read more", ""));
                        current.Description = current.Description.Substring(0, current.Description.Length - 1);
                        var titleNode = tds[1].ChildNodes[3].Descendants("a").First();
                        current.Title = titleNode.Descendants("strong").First().InnerText.Trim();
                        var link = titleNode.Attributes["href"].Value.Split('/');
                        current.Id = Convert.ToInt32(link[2]);
                        current.Type = link[1] == "anime"
                            ? RelatedItemType.Anime
                            : link[1] == "manga" ? RelatedItemType.Manga : RelatedItemType.Unknown;
                        output.Add(current);
                    }
                    catch (Exception)
                    {
                        //who knows...raw html is scary
                    }
                }
            }
            catch (Exception)
            {
                //something we wrong
            }

            DataCache.SaveDirectRecommendationsData(_animeId, output, _animeMode);

            return output;
        }