public RestaurantModel Create(Restaurant restaurant)
 {
     return new RestaurantModel()
         {
             //Url = RestaurantUrl(restaurant),
             ID = restaurant.ID,
             Name = restaurant.Name,
             Created = restaurant.AddDate,
             Address = restaurant.Address,
             ImgUrl = "../../Content/images/restaurant.jpg",
             Reviews = restaurant.Reviews.Select(rr => _reviewModelFactory.Create(rr))
         };
 }
 public RestaurantModel Create(Restaurant restaurant)
 {
     return new RestaurantModel()
     {
         Url = ControllerUrl(restaurant),
         Links =
         new List<LinkModel>()
             {
                 //v1
                 //CreateLink(_urlHelper.Link("Restaurants", new { restaurantid = restaurant.ID }),"self"),
                 //v2
                 CreateLink(_urlHelper.Link("Restaurant", new { restaurantid = restaurant.ID }),"self"),
                 CreateLink(_urlHelper.Link("Reviews", new { restaurantid = restaurant.ID }), "newReviewEntry", "POST")
             },
         ID = restaurant.ID,
         Name = restaurant.Name,
         Created = restaurant.AddDate,
         Address = restaurant.Address,
         ImgUrl = "../../Content/images/restaurant.jpg",
         Reviews = restaurant.Reviews.Select(rr => Create(rr))
     };
 }
 private string RestaurantUrl(Restaurant restaurant)
 {
     return _urlHelper.Link("Restaurants", new { restaurantid = restaurant.ID });
 }
 private string ControllerUrl(Restaurant restaurant)
 {
     //v1
     //return _urlHelper.Link("Restaurants", new { restaurantid = restaurant.ID });
     //v2
     return _urlHelper.Link("Restaurant", new { restaurantid = restaurant.ID });
 }
        public Restaurant Parse(RestaurantModel model)
        {
            try
            {
                var entry = new Restaurant();

                var selfLink = model.Links.Where(l => l.Rel == "self").FirstOrDefault();

                //if (!string.IsNullOrWhiteSpace(model.Url))
                if(selfLink !=null && !string.IsNullOrWhiteSpace(selfLink.Href))
                {
                    //var uri = new Uri(model.Url);
                    var uri = new Uri(selfLink.Href);
                    entry.ID = int.Parse(uri.Segments.Last());
                }

                if (model.ID != default(int))
                {
                    entry.ID = model.ID;
                }

                if (!string.IsNullOrEmpty(model.Name))
                {
                    entry.Name = model.Name;
                }
                entry.ImageUrl = model.ImgUrl;
                entry.Address = model.Address;

                return entry;
            }
            catch
            {
                return null;
            }
        }