/// <summary>
        /// Requests the Favorite Parkade Coordinates
        /// </summary>
        /// <returns></returns>
        public JsonResult RequestFavoriteCoordinates()
        {
            IParkadeModel parkade = null;
            HttpCookie favoriteParkadeId = HttpContext.Request.Cookies[Labels.CookieFavoriteKey];
            if (favoriteParkadeId != null)
            {
                string idAsString = favoriteParkadeId.Value;
                int id;
                if (int.TryParse(idAsString, out id))
                {
                    parkade = this.ParkingFinderFacade.RequestParkade(new OccupancyRequestParameter()
                    {
                        Id = id
                    });
                }
            }

            return parkade == null
                ? Json(string.Empty)
                : Json(new FavoriteParkadeModel()
                {
                    FavoriteLng = parkade.Longitude,
                    FavoriteLat = parkade.Latitude
                });
        }
        public ActionResult GetInfoWindow(string id)
        {
            int idInt;
            if (id.IsNullOrEmpty()
                || !int.TryParse(id, out idInt))
            {
                return Json(string.Empty);
            }

            IParkadeModel parkade = this.ParkingFinderFacade.RequestParkade(new OccupancyRequestParameter()
            {
                Id = idInt
            });

            HttpCookie favoriteCookie = HttpContext.Request.Cookies[Labels.CookieFavoriteKey];
            bool viewDataValue = false;
            if (favoriteCookie != null)
            {
                string favoriteId = favoriteCookie.Value;
                int favoriteIdAsInt;
                if (int.TryParse(favoriteId, out favoriteIdAsInt))
                {
                    viewDataValue = favoriteIdAsInt == idInt;
                }              
            }

            ViewData[Labels.CookieViewDataKey] = viewDataValue;
            return PartialView("Partial/InfoWindow/InfoWindow", parkade);
        }
        /// <summary>
        /// Interface call to get a single parkade
        ///  </summary>
        /// <returns>a Model with all parkades</returns>
        public IParkadeModel RequestParkade(IOccupancyRequestParameter parameter)
        {
            if (!parameter.IsValid())
            {
                Logger.Error("RequestParkade: Invalid Model");
                return(new ParkadeModel());
            }

            IParkadeModel specificParkade = ((IParkadesModel)RequestGeneric <ParkadesModel>(Settings.ParkadeBaseUrl))
                                            .Parkades
                                            .FirstOrDefault(element => element.Id.Equals(parameter.Id.ToString()));

            return(specificParkade);
        }
 /// <summary>
 /// Request Handler to render the teaser for the favorite
 /// </summary>
 /// <returns>Partial view of info window data</returns>
 public ActionResult FavoriteTeaser()
 {
     IParkadeModel parkade = null;
     HttpCookie favoriteParkadeId = HttpContext.Request.Cookies[Labels.CookieFavoriteKey];
     if (favoriteParkadeId != null)
     {
         string idAsString = favoriteParkadeId.Value;
         int id;
         if (int.TryParse(idAsString, out id))
         {
             parkade = this.ParkingFinderFacade.RequestParkade(new OccupancyRequestParameter()
             {
                 Id = id
             });
         }
     }
    
     return PartialView($"Partial/Favorite/{(parkade == null ? "Empty" : string.Empty)}FavoriteTeaser", parkade);
 }