Esempio n. 1
0
        public ActionResult UpdateWine(WineViewModel model)
        {
            Wine wine = _wineRepository.GetByID(model.WineID);

            if (wine == null)
            {
                return(Json(new { success = false, message = "No item found" }));
            }
            wine.Name         = model.Name;
            wine.RegionID     = model.RegionID;
            wine.CountryID    = model.CountryID;
            wine.BottleSizeID = model.BottleSizeID;
            wine.Description  = model.Description;
            wine.Vintage      = model.Vintage;
            wine.Price        = model.Price;
            wine.WineID       = model.WineID;
            wine.SubTypeID    = model.SubTypeID;
            wine.TypeID       = model.TypeID;

            if (model.File != null && model.File.ContentLength > 0)
            {
                var uploadDir = "~/Content/img/uploads";
                var imagePath = Path.Combine(Server.MapPath(uploadDir), model.File.FileName);
                var imageUrl  = Path.Combine(uploadDir, model.File.FileName);
                model.File.SaveAs(imagePath);
                wine.ImagePath = imageUrl;
            }

            _wineRepository.Update(wine);

            //return Json(new { success = true }, JsonRequestBehavior.AllowGet);
            return(RedirectToAction("Index"));
        }
Esempio n. 2
0
        public ActionResult Details(int id)
        {
            var wine = _wineRepository.GetByID(id);

            if (wine == null)
            {
                return(Content("This wine does not exist"));
            }
            WineViewModel model = new WineViewModel()
            {
                CountryID = wine.CountryID,
                RegionID  = wine.RegionID,
                TypeID    = wine.TypeID,
                WineID    = wine.WineID,

                Vintage      = wine.Vintage,
                Name         = wine.Name,
                Description  = wine.Description,
                ImagePath    = wine.ImagePath,
                BottleSizeID = wine.BottleSizeID,
                Types        = wine.Types.TypeName,
                Price        = wine.Price,

                RegionName  = wine.Regions.RegionName,
                CountryName = wine.Countrys.CountryName,
                SubTypes    = wine.SubTypes.SubTypeName
            };

            return(View(model));
        }
Esempio n. 3
0
        public IActionResult ViewWine(int id)
        {
            // Get wine from database by ID
            Wine          wine     = context.Wines.SingleOrDefault(w => w.ID == id);
            WineViewModel viewWine = new WineViewModel
            {
                WineID      = wine.ID,
                Name        = wine.Name,
                Description = wine.Description,
                Notes       = wine.Notes,
                Winery      = context.Wineries.Single(w => w.ID == wine.WineryID),
                Type        = context.WineTypes.Single(t => t.ID == wine.TypeID),
                Rating      = wine.Rating,
                Count       = wine.Count,
                InStock     = wine.InStock
            };

            viewWine.RatingTxt = Enum.GetName(typeof(WineRatings), viewWine.Rating);

            TryValidateModel(viewWine);
            if (ModelState.IsValid)
            {
                return(View(viewWine));
            }
            return(Redirect("/Wine"));
        }
Esempio n. 4
0
        public async Task <IActionResult> Edit([Bind("ID, Name, Description, Price, Sparkling, RegionId")] WineViewModel updEntry)
        {
            try
            {
                if (!ModelState.IsValid || updEntry == null)
                {
                    return(BadRequest());
                }

                var findWine = await _wineService.GetWineById(updEntry.ID);

                findWine.ID          = updEntry.ID;
                findWine.Name        = updEntry.Name;
                findWine.RegionId    = updEntry.RegionId;
                findWine.Description = updEntry.Description;
                findWine.Price       = updEntry.Price;
                findWine.Sparkling   = updEntry.Sparkling;

                await _wineService.UpdateWineById(findWine);
            }
            catch (WebException)
            {
                return(View());
            }

            return(RedirectToAction("Index", "wines"));
        }
Esempio n. 5
0
        public IActionResult GetWinebyId(int?id)
        {
            try
            {
                if (id == null)
                {
                    return(BadRequest());
                }

                var wineModel = _context.Wines.Where(x => x.ID == id).FirstOrDefault();

                var wineResponse = new WineViewModel()
                {
                    ID          = wineModel.ID,
                    Name        = wineModel.Name,
                    Description = wineModel.Description,
                    Price       = wineModel.Price,
                    Sparkling   = wineModel.Sparkling,
                    RegionId    = wineModel.RegionId
                };

                if (wineResponse == null)
                {
                    throw new ItemNotFoundExceptions("The id was not found");
                }

                return(Ok(wineResponse));
            }

            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                return(BadRequest());
            }
        }
Esempio n. 6
0
        public ActionResult Create(WineViewModel model)
        {
            var validImageTypes = new string[]
            {
                "image/gif",
                "image/jpeg",
                "image/pjpeg",
                "image/png"
            };

            if (model.File == null || model.File.ContentLength == 0)
            {
                ModelState.AddModelError("File", "This field is required");
            }
            else if (!validImageTypes.Contains(model.File.ContentType))
            {
                ModelState.AddModelError("ImageUpload", "Please choose either a GIF, JPG or PNG image.");
            }



            if (ModelState.IsValid)
            {
                var wine = new Wine
                {
                    WineID       = model.WineID,
                    TypeID       = model.TypeID,
                    SubTypeID    = model.SubTypeID,
                    RegionID     = model.RegionID,
                    CountryID    = model.CountryID,
                    BottleSizeID = model.BottleSizeID,
                    Vintage      = model.Vintage,
                    Name         = model.Name,
                    Description  = model.Description,
                    Price        = model.Price
                };

                if (model.File != null && model.File.ContentLength > 0)
                {
                    var uploadDir = "~/Content/img/uploads";
                    var imagePath = Path.Combine(Server.MapPath(uploadDir), model.File.FileName);
                    var imageUrl  = Path.Combine(uploadDir, model.File.FileName);
                    model.File.SaveAs(imagePath);
                    wine.ImagePath = imageUrl;
                }

                _wineRepository.Insert(wine);

                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
Esempio n. 7
0
        public ActionResult Create()
        {
            var model = new WineViewModel();

            model.TypesList      = _typesRepository.GetTypes();
            model.SubTypesList   = _subTypeRepository.GetAll();
            model.BottleSizeList = _bottleSizeRepository.GetAll();
            model.RegionList     = _regionRepository.GetAll();
            model.CountryList    = db.Countries.ToList();

            return(View(model));
        }
Esempio n. 8
0
        public IActionResult AddWine([FromBody] WineViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }
                if (model == null)
                {
                    return(BadRequest());
                }

                var addNewWine = new Wine.Data.Wine()
                {
                    // Id not added because the DB will generate it automatically
                    Name        = model.Name,
                    Description = model.Description,
                    Price       = model.Price,
                    Sparkling   = model.Sparkling,
                    RegionId    = model.RegionId
                };

                if (addNewWine != null)
                {
                    _context.Add(addNewWine);

                    _context.SaveChanges();
                }

                var response = new WineViewModel()
                {
                    ID          = addNewWine.ID,
                    Name        = addNewWine.Name,
                    Description = addNewWine.Description,
                    Price       = addNewWine.Price,
                    Sparkling   = addNewWine.Sparkling,
                    RegionId    = addNewWine.RegionId
                };

                return(Ok(response));
            }

            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                return(BadRequest());
            }
        }
Esempio n. 9
0
        public async Task <IActionResult> DeleteWineById([Bind("ID")] WineViewModel wineModel)
        {
            try
            {
                var findWine = await _wineService.GetWineById(wineModel.ID);

                await _wineService.DeleteWineById(findWine.ID);
            }
            catch (WebException)
            {
                return(View());
            }

            return(RedirectToAction("Index", "wines"));
        }
Esempio n. 10
0
        public ActionResult EditWine(int id)
        {
            WineViewModel model;
            var           wine = _wineRepository.GetByID(id);

            if (wine == null)
            {
                return(Json(new { success = false, message = "No item found" }));
            }
            model                = new WineViewModel(wine);
            model.TypesList      = _typesRepository.GetTypes();
            model.SubTypesList   = _subTypeRepository.GetAll();
            model.BottleSizeList = _bottleSizeRepository.GetAll();
            model.RegionList     = _regionRepository.GetAll();
            model.CountryList    = db.Countries.ToList();

            return(View(model));
        }
Esempio n. 11
0
        public IActionResult Edit(int id)
        {
            Wine          editWine = context.Wines.SingleOrDefault(w => w.ID == id);
            WineViewModel wine     = new WineViewModel(context.Wineries.ToList(), context.WineTypes.ToList())
            {
                WineID      = editWine.ID,
                Name        = editWine.Name,
                Description = editWine.Description,
                Notes       = editWine.Notes,
                Winery      = context.Wineries.Single(wn => wn.ID == editWine.WineryID),
                Type        = context.WineTypes.Single(t => t.ID == editWine.TypeID),
                Rating      = editWine.Rating,
                Count       = editWine.Count,
                InStock     = editWine.InStock
            };

            return(View(wine));
        }
Esempio n. 12
0
        public IActionResult UpdateWine([FromBody] WineViewModel updModel)
        {
            try
            {
                if (!ModelState.IsValid || updModel == null)
                {
                    return(BadRequest());
                }

                // mapping 1
                var wine = _context.Wines.Where(x => x.ID == updModel.ID).FirstOrDefault();

                if (wine != null)
                {
                    wine.Name        = updModel.Name;
                    wine.Description = updModel.Description;
                    wine.Price       = updModel.Price;
                    wine.Sparkling   = updModel.Sparkling;
                    wine.RegionId    = updModel.RegionId;

                    _context.Update(wine);
                    _context.SaveChanges();
                }

                var updResponse = new WineViewModel()
                {
                    ID          = wine.ID,
                    Name        = wine.Name,
                    Description = wine.Description,
                    Price       = wine.Price,
                    Sparkling   = wine.Sparkling,
                    RegionId    = wine.RegionId
                };

                return(Ok(updResponse));
            }

            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                return(BadRequest());
            }
        }
Esempio n. 13
0
        public IActionResult Edit(WineViewModel editedWine)
        {
            if (ModelState.IsValid)
            {
                Wine wine = context.Wines.SingleOrDefault(w => w.ID == editedWine.WineID);
                if (wine != null)
                {
                    wine.Name        = editedWine.Name;
                    wine.Description = editedWine.Description;
                    wine.Notes       = editedWine.Notes;
                    wine.WineryID    = editedWine.WineryID;
                    wine.TypeID      = editedWine.TypeID;
                    wine.Rating      = editedWine.Rating;

                    context.SaveChanges();
                }

                return(Redirect("/Wine/ViewWine/" + wine.ID));
            }
            return(View(editedWine));
        }
Esempio n. 14
0
        public async Task <IActionResult> Delete(int id)
        {
            try
            {
                var findWine = await _wineService.GetWineById(id);

                var output = new WineViewModel
                {
                    ID          = findWine.ID,
                    Name        = findWine.Name,
                    RegionId    = findWine.RegionId,
                    Description = findWine.Description,
                    Price       = findWine.Price,
                    Sparkling   = findWine.Sparkling
                };

                return(View(output));
            }
            catch (WebException)
            {
                return(View());
            }
        }
Esempio n. 15
0
        public IActionResult Add(WineViewModel newWineModel)
        {
            if (ModelState.IsValid)
            {
                Wine newWine = new Wine
                {
                    Name        = newWineModel.Name,
                    Description = newWineModel.Description,
                    Notes       = newWineModel.Notes,
                    Rating      = newWineModel.Rating,
                    WineryID    = newWineModel.WineryID,
                    TypeID      = newWineModel.TypeID,
                    InStock     = false
                };

                context.Wines.Add(newWine);
                context.SaveChanges();

                return(Redirect("/Wine/ViewAll"));
            }

            return(View(newWineModel));
        }
Esempio n. 16
0
        public async Task <IActionResult> AddWine([Bind("ID, Name, Description, Price, Sparkling, RegionId")] WineViewModel newEntry)
        {
            try
            {
                if (!ModelState.IsValid || newEntry == null)
                {
                    return(BadRequest());
                }

                var addWine = new WineModel
                {
                    Name        = newEntry.Name,
                    RegionId    = newEntry.RegionId,
                    Description = newEntry.Description,
                    Price       = newEntry.Price,
                    Sparkling   = newEntry.Sparkling
                };

                await _wineService.AddNewWine(addWine);

                var output = new WineViewModel
                {
                    ID          = addWine.ID,
                    Name        = addWine.Name,
                    RegionId    = addWine.RegionId,
                    Description = addWine.Description,
                    Price       = addWine.Price,
                    Sparkling   = addWine.Sparkling
                };
            }
            catch (WebException)
            {
                return(View());
            }

            return(RedirectToAction("Index", "wines"));
        }