Exemple #1
0
        public async Task <ActionResult> Save(FoodPictureFormViewModel viewModel)
        {
            string relativeFolderPath = "/Images/Food/";

            string newFileName      = viewModel.FoodName + Path.GetExtension(viewModel.File.FileName);
            string relativeFilePath = relativeFolderPath + newFileName;
            string absoluteFilePath = HttpContext.Server.MapPath("~" + relativeFolderPath) + newFileName;

            FoodPicture foodPictureInDb = await _unitOfWork.FoodPictures.SingleOrDefault(c => c.Id == viewModel.Id);

            if (foodPictureInDb == null)
            {
                _unitOfWork.FoodPictures.Add(new FoodPicture
                {
                    FilePath = relativeFilePath,
                    FoodId   = viewModel.FoodId
                });
            }
            else
            {
                foodPictureInDb.FilePath = relativeFilePath;
            }

            viewModel.File.SaveAs(absoluteFilePath);

            await _unitOfWork.Complete();

            return(RedirectToAction("Edit", "Food", new { Id = viewModel.FoodId }));
        }
Exemple #2
0
        public async Task <ActionResult> New(int foodId)
        {
            Food food = await _unitOfWork.Foods.SingleOrDefault(c => c.Id == foodId);

            //you only need two things, make a repository method that only gets those things

            FoodPictureFormViewModel viewModel = new FoodPictureFormViewModel(food);

            return(View("FoodPictureForm", viewModel));
        }
Exemple #3
0
        public async Task <ActionResult> Edit(int id)
        {
            //i believe you've heard of navigational properties...
            FoodPicture foodPicture = await _unitOfWork.FoodPictures.SingleOrDefault(c => c.Id == id);

            Food food = await _unitOfWork.Foods.SingleOrDefault(c => c.Id == foodPicture.FoodId);

            FoodPictureFormViewModel viewModel = new FoodPictureFormViewModel(foodPicture, food);

            return(View("FoodPictureForm", viewModel));
        }