// GET: SnackInfoes/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var snackInfo = await _context.SnackInfo.FindAsync(id);

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


            // Use LINQ to get list of category.
            IQueryable <string> categoryQuery = from m in _context.SnackCategory
                                                where m.Status == 1
                                                orderby m.CategoryNum
                                                select m.CategoryName;



            SnackEditViewModel EditViewModel = new SnackEditViewModel()
            {
                SnackInfo         = snackInfo,
                CateGorieNameList = new SelectList(categoryQuery.ToList())
            };

            return(View(EditViewModel));
        }
        public async Task <IActionResult> Edit(int id, SnackEditViewModel snackEditView)
        {
            if (id != snackEditView.SnackInfo.Id)
            {
                return(NotFound());
            }

            //if (ModelState.IsValid)
            //{
            if (snackEditView.PushFile != null)
            {
                string file_name = $"{snackEditView.SnackInfo.SnackNum}_{DateTime.Now.ToString("yyyymmddHHmmss")}.jpg";
                using (var fileStream = new FileStream(Path.Combine(_dir, file_name), FileMode.Create, FileAccess.Write))
                {
                    snackEditView.PushFile.CopyTo(fileStream);
                }
                snackEditView.SnackInfo.ImgUrl = relative_path + file_name;
            }



            try
            {
                long category_id = _context.SnackCategory.FirstOrDefault(c => c.CategoryName == snackEditView.CategoryName).CategoryNum;
                snackEditView.SnackInfo.CategoryId = category_id;
                if (snackEditView.SnackInfo.ImgUrl == null)
                {
                    snackEditView.SnackInfo.ImgUrl = _context.SnackInfo.AsNoTracking().FirstOrDefault(s => s.Id == snackEditView.SnackInfo.Id).ImgUrl;
                }
                _context.Update(snackEditView.SnackInfo);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SnackInfoExists(snackEditView.SnackInfo.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(RedirectToAction(nameof(Index)));
            //}
        }