BeerniqueWeb.Controllers.HomeController.Index C# (CSharp) Method

Index() public method

public Index ( ) : System.Web.Mvc.ActionResult
return System.Web.Mvc.ActionResult
        public ActionResult Index()
        {
            string userBeers = null;
            var breweries = new Dictionary<string, int>();
            var uniqueBeers = new List<string>();
            var beers = new List<JsonValue>();
            var userBeerCounts = new Dictionary<string, int>();

            if (!string.IsNullOrEmpty(SessionUser.Current.Email) &&
                (userBeers = _Client.Get<string>(HashHelper.Hash(SessionUser.Current.Email))) != null)
            {
                var userBeersKeys = userBeers.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                if (userBeersKeys.Length > 0)
                {

                    foreach (var beerId in userBeersKeys)
                    {
                        userBeerCounts[beerId] = userBeersKeys.Where(k => k == beerId).Count();
                        var beer = JsonObject.Parse(_Client.Get<string>(beerId));

                        // if a non-existent beer was accidently added to the users doc, skip it
                        if (beer == null)
                        {
                            continue;
                        }

                        // add to the brewery counter for "mostly_by" list
                        if (!breweries.ContainsKey(beer["brewery"].ReadAs<string>()))
                        {
                            breweries[beer["brewery"].ReadAs<string>()] = 1;
                        }
                        else
                        {
                            breweries[beer["brewery"].ReadAs<string>()] = ++breweries[beer["brewery"].ReadAs<string>()];
                        }

                        // if we already have the beer in the list, though, let's skip it
                        if (uniqueBeers.Contains(escapeBeerId(beerId)))
                        {
                            continue;
                        }

                        beer["beer_url"] = Url.Action("Details", "Beers", new { id = escapeBeerId(beerId) });
                        beer["brewery_url"] = "breweries/";// . str_replace(' ', '_', $beer->brewery);
                        beer["drank_times"] = userBeerCounts[beerId];
                        beers.Add(beer);
                        uniqueBeers.Add(escapeBeerId(beerId));
                    }

                }

            }
            ViewBag.HasBeers = uniqueBeers.Count > 0;
            ViewBag.OnIndex = true;
            ViewBag.Beers = beers;
            ViewBag.MostlyDrink = escapeBeerId(userBeerCounts.OrderByDescending(k => k.Value).FirstOrDefault().Key);
            ViewBag.MostlyBy = breweries.OrderByDescending(k => k.Value).FirstOrDefault().Key;
            return View();
        }
HomeController