Example #1
0
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            WineDetailsViewModel viewModel = new WineDetailsViewModel();

            var wine = await _context.Wine
                       .Include(w => w.Winery)
                       .Include(w => w.Variety)
                       .FirstOrDefaultAsync(m => m.WineId == id);

            if (wine == null)
            {
                return(NotFound());
            }

            var foods = await _context.Food
                        .Include(f => f.FoodCategory)
                        .ThenInclude(fc => fc.Category)
                        .ThenInclude(c => c.Variety)
                        .ThenInclude(v => v.Wines)
                        .Where(f => f.FoodCategory.Any(fc => fc.CategoryId == wine.Variety.CategoryId))
                        .ToListAsync()
            ;

            viewModel.Wine  = wine;
            viewModel.Foods = foods;

            return(View(viewModel));
        }
Example #2
0
        public async Task <IActionResult> Details(string id)
        {
            //to get the wine data
            //

            var wineServiceModel = await this.winesService.GetWineDetails(id);

            WineDetailsViewModel wineDetailsViewModel = new WineDetailsViewModel
            {
                Id          = wineServiceModel.Id,
                Name        = wineServiceModel.Name,
                Type        = wineServiceModel.Type,
                Picture     = wineServiceModel.Picture,
                Description = wineServiceModel.Description,
                Country     = wineServiceModel.Country,
                Colour      = wineServiceModel.Colour,
                Year        = wineServiceModel.Year,
                Price       = wineServiceModel.Price,
                Likes       = wineServiceModel.Likes
            };

            //var wine = this.winesService.GetWineDetails(id);
            //to pass it to the view in viewModel

            return(this.View(wineDetailsViewModel));
        }
Example #3
0
        public async Task <IActionResult> Edit(int id, Wine wine)
        {
            if (id != wine.WineId)
            {
                return(NotFound());
            }

            var user = await GetCurrentUserAsync();

            if (ModelState.IsValid)
            {
                try
                {
                    wine.ApplicationUserId = user.Id;

                    _context.Update(wine);
                    await _context.SaveChangesAsync();
                }

                catch (DbUpdateConcurrencyException)
                {
                    if (!WineExists(wine.WineId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                WineDetailsViewModel viewModel = new WineDetailsViewModel();

                var updatedWine = await _context.Wine
                                  .Include(w => w.Winery)
                                  .Include(w => w.Variety)
                                  .FirstOrDefaultAsync(m => m.WineId == id);

                if (wine == null)
                {
                    return(NotFound());
                }

                var foods = await _context.Food
                            .Include(f => f.FoodCategory)
                            .ThenInclude(fc => fc.Category)
                            .ThenInclude(c => c.Variety)
                            .ThenInclude(v => v.Wines)
                            .Where(f => f.FoodCategory.Any(fc => fc.CategoryId == updatedWine.Variety.CategoryId))
                            .ToListAsync()
                ;

                viewModel.Wine  = updatedWine;
                viewModel.Foods = foods;

                return(View("Details", viewModel));
            }
            ViewData["ApplicationUserId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", wine.ApplicationUserId);
            return(View(wine));
        }
Example #4
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     if (DataContext == null)
     {
         string selectedIndex = "";
         if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedIndex))
         {
             int index = int.Parse(selectedIndex);
             _viewModel = IoCContainer.Get <WineDetailsViewModel>();
             _viewModel.SelectWine(index);
             DataContext = _viewModel;
         }
     }
 }
 public SaveWinePage()
 {
     InitializeComponent();
     buildLocalizedApplicationBar();
     _viewModel = IoCContainer.Get <WineDetailsViewModel>();
 }