コード例 #1
0
        public IHttpActionResult EditExistingMeal(int id, EditMealBindingModel editMealModel)
        {
            if (editMealModel == null)
            {
                return(this.BadRequest("Invalid meal data."));
            }

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

            var mealType = db.MealTypes.FirstOrDefault(mt => mt.Id == editMealModel.TypeId);

            if (mealType == null)
            {
                return(this.BadRequest("Invalid meal type id."));
            }

            var meal = db.Meals.FirstOrDefault(m => m.Id == id);

            if (meal == null)
            {
                return(this.NotFound());
            }

            var currentUserId = User.Identity.GetUserId();

            if (currentUserId == null || meal.Restaurant.OwnerId != currentUserId)
            {
                return(this.Unauthorized());
            }

            meal.Name  = editMealModel.Name;
            meal.Price = editMealModel.Price;
            meal.Type  = mealType;
            db.SaveChanges();

            return
                (this.Ok(new MealOutputModel()
            {
                Id = meal.Id,
                Name = meal.Name,
                Price = meal.Price,
                Type = meal.Type.Name
            }));
        }
コード例 #2
0
        public IHttpActionResult EditMeal(int id, EditMealBindingModel model)
        {
            var meal = this.Data.Meals.Find(id);

            if (meal == null)
            {
                return(this.NotFound());
            }

            var loggerUserId      = this.User.Identity.GetUserId();
            var restaurantOwnerId = this.GetRestaurantOwnerId(meal.RestaurantId);

            if (restaurantOwnerId != loggerUserId)
            {
                return(this.Unauthorized());
            }

            if (model == null)
            {
                return(this.BadRequest("Model cannot be null"));
            }

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

            var type = this.Data.MealTypes.Find(model.TypeId);

            if (type == null)
            {
                return(this.BadRequest("Invalid meal type id: " + model.TypeId));
            }

            meal.Type  = type;
            meal.Price = model.Price;
            meal.Name  = model.Name;
            this.Data.SaveChanges();

            var mealData = this.Data.Meals.All()
                           .Where(m => m.Id == meal.Id)
                           .Select(MealViewModel.Create)
                           .FirstOrDefault();

            return(this.Ok(mealData));
        }
コード例 #3
0
ファイル: MealsController.cs プロジェクト: KStoilkov/SoftUni
        public IHttpActionResult EditMeal(int id, EditMealBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            if (model == null)
            {
                return(this.BadRequest("Model cannot be null."));
            }

            var dbMeal = this.Data.Meals.All()
                         .FirstOrDefault(m => m.Id == id);

            if (dbMeal == null)
            {
                return(this.NotFound());
            }

            var loggedUserId = this.User.Identity.GetUserId();

            if (dbMeal.Restaurant.OwnerId != loggedUserId)
            {
                return(this.BadRequest("You are not the owner of the restaurant."));
            }

            var dbType = this.Data.MealTypes.All().FirstOrDefault(mt => mt.Id == model.TypeId);

            if (dbType == null)
            {
                return(this.BadRequest($"Meal Type with Id: {dbType.Id} doesn't exist."));
            }

            dbMeal.Name   = model.Name;
            dbMeal.Price  = model.Price;
            dbMeal.TypeId = model.TypeId;
            this.Data.SaveChanges();

            var editedMeal = this.Data.Meals.All()
                             .Where(m => m.Id == id)
                             .Select(MealViewModel.Create)
                             .FirstOrDefault();

            return(this.Ok(editedMeal));
        }
コード例 #4
0
        public IHttpActionResult EditMeal(int id, EditMealBindingModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return this.BadRequest(this.ModelState);
            }

            if (model == null)
            {
                return this.BadRequest("Model cannot be null.");
            }

            var dbMeal = this.Data.Meals.All()
                .FirstOrDefault(m => m.Id == id);

            if (dbMeal == null)
            {
                return this.NotFound();
            }

            var loggedUserId = this.User.Identity.GetUserId();
            if (dbMeal.Restaurant.OwnerId != loggedUserId)
            {
                return this.BadRequest("You are not the owner of the restaurant.");
            }

            var dbType = this.Data.MealTypes.All().FirstOrDefault(mt => mt.Id == model.TypeId);
            if (dbType == null)
            {
                return this.BadRequest($"Meal Type with Id: {dbType.Id} doesn't exist.");
            }

            dbMeal.Name = model.Name;
            dbMeal.Price = model.Price;
            dbMeal.TypeId = model.TypeId;
            this.Data.SaveChanges();

            var editedMeal = this.Data.Meals.All()
                .Where(m => m.Id == id)
                .Select(MealViewModel.Create)
                .FirstOrDefault();

            return this.Ok(editedMeal);
        }
コード例 #5
0
        public IHttpActionResult PutEditMeal([FromUri] int id, [FromBody] EditMealBindingModel model)
        {
            var meal = this.Data.Meals.GetById(id);

            if (meal == null)
            {
                return(this.NotFound());
            }

            var userId = this.User.Identity.GetUserId();

            if (meal.Restaurant.OwnerId != userId)
            {
                return(this.Unauthorized());
            }

            if (model == null)
            {
                return(this.BadRequest());
            }

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

            var type = this.Data.MealTypes.GetById(model.TypeId);

            if (type == null)
            {
                return(this.BadRequest("Meal type with id " + model.TypeId + " does not exist!"));
            }

            meal.Name  = model.Name;
            meal.Price = model.Price;
            meal.Type  = type;
            this.Data.SaveChanges();

            var viewModel = Mapper.Map <MealViewModel>(meal);

            return(this.Ok(viewModel));
        }