public IActionResult AddToComparison(int?id)
        {
            // Find the object by id in the db (with its images)
            GuitarViewModel obj = new GuitarViewModel(_db.Guitars.Find(id),
                                                      _db.Images.Where(i => i.GuitarID == id.ToString()));

            // Get the current session comparison model
            GuitarComparisonViewModel compModel = HttpContext.Session.Get <GuitarComparisonViewModel>(SiteConstants.SessionName);

            if (compModel == null)
            {
                HttpContext.Session.Set(SiteConstants.SessionName, new GuitarComparisonViewModel());
                compModel = HttpContext.Session.Get <GuitarComparisonViewModel>(SiteConstants.SessionName);
            }

            // Check if the obj found is already part of the comparison. (Early Out)
            if (compModel.IsInComparison(obj))
            {
                return(RedirectToAction("Index", "Guitar"));
            }

            // If the comparison is full, replace guitar 1 with 2, then set 2 to the new object
            if (compModel.IsFull())
            {
                compModel.Guitar1 = compModel.Guitar2;
                compModel.Guitar2 = obj;
            }
            else if (compModel.Guitar1 == null)
            {
                compModel.Guitar1 = obj;
            }
            else if (compModel.Guitar2 == null)
            {
                compModel.Guitar2 = obj;
            }

            // Set the session and redirect
            HttpContext.Session.Set(SiteConstants.SessionName, compModel);

            return(RedirectToAction("Compare", "Guitar"));
        }
        public IActionResult RemoveFromComparison(int?id)
        {
            // Find the object by id in the db (with its images)
            GuitarViewModel obj = new GuitarViewModel(_db.Guitars.Find(id),
                                                      _db.Images.Where(i => i.GuitarID == id.ToString()));

            GuitarComparisonViewModel compModel = HttpContext.Session.Get <GuitarComparisonViewModel>(SiteConstants.SessionName);

            if (compModel.IsInComparison(obj))
            {
                if (compModel.Guitar1.Guitar.Id == obj.Guitar.Id)
                {
                    compModel.Guitar1 = null;
                }
                else
                {
                    compModel.Guitar2 = null;
                }
            }

            HttpContext.Session.Set <GuitarComparisonViewModel>(SiteConstants.SessionName, compModel);

            return(RedirectToAction("Index", "Guitar"));
        }