public IHttpActionResult PostRestaurant(RestaurantBindingModel restaurant)
        {
            if (!ModelState.IsValid || restaurant == null)
            {
                return BadRequest(ModelState);
            }

            var userId = this.User.Identity.GetUserId();
            var restaurantToAdd = new Restaurant()
            {
                Name = restaurant.Name,
                TownId = restaurant.TownId,
                OwnerId = userId
            };

            db.Restaurants.Add(restaurantToAdd);
            db.SaveChanges();

            var rvm = new RestaurantViewModel()
            {
                Id = restaurantToAdd.Id,
                Name = restaurantToAdd.Name,
                Rating = null,
                Town = new TownViewModel()
                {
                    Id = restaurantToAdd.TownId,
                    Name = db.Towns.FirstOrDefault(t => t.Id == restaurantToAdd.TownId).Name
                }
            };

            return CreatedAtRoute("DefaultApi", new { id = rvm.Id }, rvm);
        }
        public IHttpActionResult CreateRestaurant(RestaurantBindingModel model)
        {
            if (model == null)
            {
                return this.BadRequest();
            }

            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            var currUserId = User.Identity.GetUserId();
            var currUser = db.Users.Find(currUserId);
            var town = db.Towns.All().FirstOrDefault(t => t.Id == model.TownId);

            var restaurant = new Restaurant()
            {
                Name = model.Name,
                Town = town,
                Owner = currUser
            };

            var restaurantViewModel = new RestaurantViewModel()
            {
                Id = restaurant.Id,
                Name = restaurant.Name,
                Rating = (restaurant.Ratings.Any()) ? restaurant.Ratings.Average(r => r.Stars) : (double?) null,
                Town = new TownViewModel()
                {
                    Id = town.Id,
                    Name = town.Name
                }
            };

            db.Restaurants.Add(restaurant);
            db.SaveChanges();

            return this.Created("http://localhost:1337/api/restaurants/" + restaurant.Id, restaurantViewModel);
        }