public async Task <IActionResult> Edit(int id, BicycleModelViewModel bicycleModel)//[Bind("Id,Price,ModelName,ModelYear,BrandId,GenderId,CategoryId,Description")] BicycleModel bicycleModel)
        {
            if (id != bicycleModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var tempBicycle = await _context.BicycleModels.Where(b => b.Id == bicycleModel.Id).FirstOrDefaultAsync();

                    tempBicycle.BrandId         = bicycleModel.BrandId;
                    tempBicycle.CategoryId      = bicycleModel.CategoryId;
                    tempBicycle.GenderId        = bicycleModel.GenderId;
                    tempBicycle.Description     = bicycleModel.Description;
                    tempBicycle.Id              = bicycleModel.Id;
                    tempBicycle.ModelName       = bicycleModel.ModelName;
                    tempBicycle.ModelYear       = bicycleModel.ModelYear;
                    tempBicycle.Price           = bicycleModel.Price;
                    tempBicycle.SizeColorModels = bicycleModel.SizeColorModels;

                    if (bicycleModel.Image != null)
                    {
                        byte[] imageData = null;
                        using (var binaryReader = new BinaryReader(bicycleModel.ImageFile.OpenReadStream()))
                        {
                            imageData = binaryReader.ReadBytes((int)bicycleModel.Image.Length);
                        }
                        tempBicycle.Image = imageData;
                    }
                    _context.Update(tempBicycle);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BicycleModelExists(bicycleModel.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["BrandId"]    = new SelectList(_context.Brands, "Id", "BrandName", bicycleModel.BrandId);
            ViewData["CategoryId"] = new SelectList(_context.Categories, "Id", "CategoryName", bicycleModel.CategoryId);
            ViewData["GenderId"]   = new SelectList(_context.Genders, "Id", "GenderName", bicycleModel.GenderId);
            return(View(bicycleModel));
        }
        // GET: BicycleModels/Details/5
        public async Task <IActionResult> CommonDetails(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var bm = await _context.BicycleModels
                     .Include(b => b.Brand)
                     .Include(b => b.Category)
                     .Include(b => b.Gender)
                     .Include(b => b.SizeColorModels)
                     .Include($"{ nameof(DBBicyclesContext.SizeColorModels)}.{nameof(SizeColorModel.Bicycles)}")
                     .FirstOrDefaultAsync(m => m.Id == id);

            BicycleModelViewModel viewModel = new BicycleModelViewModel
            {
                Brand           = bm.Brand,
                Category        = bm.Category,
                Description     = bm.Description,
                Gender          = bm.Gender,
                Image           = bm.Image,
                ModelName       = bm.ModelName,
                ModelYear       = bm.ModelYear,
                Price           = bm.Price,
                SizeColorModels = bm.SizeColorModels
            };

            viewModel.Colors   = bm.SizeColorModels.Select(s => _context.Colors.Find(s.ColorId)).Distinct().ToList();
            viewModel.Sizes    = bm.SizeColorModels.Select(s => _context.Sizes.Find(s.SizeId)).Distinct().ToList();
            viewModel.Quantity = bm.SizeColorModels.Sum(s => s.Bicycles.Sum(b => b.Quantity));

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

            return(View(viewModel));
        }
        public IActionResult Create(BicycleModelViewModel bvm)
        {
            BicycleModel bicycleModel = new BicycleModel
            {
                BrandId    = bvm.BrandId,
                CategoryId = bvm.CategoryId,
                GenderId   = bvm.GenderId,

                Description     = bvm.Description,
                Id              = bvm.Id,
                ModelName       = bvm.ModelName,
                ModelYear       = bvm.ModelYear,
                Price           = bvm.Price,
                SizeColorModels = bvm.SizeColorModels
            };

            if (ModelState.IsValid)
            {
                if (bvm.Image != null)
                {
                    byte[] imageData = null;
                    using (var binaryReader = new BinaryReader(bvm.ImageFile.OpenReadStream()))
                    {
                        imageData = binaryReader.ReadBytes((int)bvm.Image.Length);
                    }
                    bicycleModel.Image = imageData;
                }
                _context.Add(bicycleModel);
                _context.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["BrandId"]    = new SelectList(_context.Brands, "Id", "BrandName", bicycleModel.BrandId);
            ViewData["CategoryId"] = new SelectList(_context.Categories, "Id", "CategoryName", bicycleModel.CategoryId);
            ViewData["GenderId"]   = new SelectList(_context.Genders, "Id", "GenderName", bicycleModel.GenderId);
            return(View(bicycleModel));
        }