public IActionResult UpdateBandImageMobile(int id)
        {
            Band     model     = _context.Bands.Find(id);
            BandForm formModel = new BandForm
            {
                BandID          = model.BandID,
                BandTitle       = model.BandTitle,
                BandGenre       = model.BandGenre,
                BandDescription = model.BandDescription,
                BandPrice       = model.BandPrice,
                Stars           = model.Stars,
                BandDate        = model.BandDate,
                BandArea        = model.BandArea
            };

            ViewBag.ImageNameLarge = model.BandImage;
            ViewBag.ImageNameSmall = model.BandImageMobile;
            return(View(formModel));
        }
        public IActionResult UpdateBand(BandForm model)
        {
            if (ModelState.IsValid)
            {
                Band editBand = new Band
                {
                    BandID          = model.BandID,
                    BandTitle       = model.BandTitle,
                    BandGenre       = model.BandGenre,
                    BandDescription = model.BandDescription,
                    BandImage       = model.BandImageName,
                    BandImageMobile = model.BandImageMobileName,
                    BandPrice       = model.BandPrice,
                    Stars           = model.Stars,
                    BandDate        = model.BandDate,
                    BandArea        = model.BandArea
                };
                _context.Bands.Update(editBand);

                _context.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(model));
        }
        private Tuple <string, string, long> UploadedFileLarge(BandForm model)
        {
            string uniqueFileName = null;
            string fileExtension  = null;
            long   fileSize       = 0;

            if (model.BandImage != null)
            {
                string uploadsFolder = Path.Combine(_webHostEnvironment.WebRootPath, "images");

                fileExtension  = Path.GetExtension(model.BandImage.FileName);
                fileExtension  = fileExtension.ToLowerInvariant();
                uniqueFileName = Guid.NewGuid().ToString() + fileExtension;

                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.BandImage.CopyTo(fileStream);
                    fileSize = fileStream.Length;
                }
            }

            return(new Tuple <string, string, long>(uniqueFileName, fileExtension, fileSize));
        }
        public IActionResult AddBand(BandForm model)
        {
            if (ModelState.IsValid)
            {
                string[] permittedExtensions = { ".gif", ".jpg", ".jpeg", ".png" };

                if (model.BandImage != null)
                {
                    var    tupleLarge          = UploadedFileLarge(model);
                    string uniqueFileNameLarge = tupleLarge.Item1;
                    string fileExtLarge        = tupleLarge.Item2;
                    long   fileSizeLarge       = tupleLarge.Item3;

                    // if file is greater than 5 MB
                    if (fileSizeLarge > 5000000)
                    {
                        ViewBag.msg = "Image Large Too Big: " + fileSizeLarge.ToString();

                        return(View());
                    }
                    // if file is not a whitelisted type
                    if (!permittedExtensions.Contains(fileExtLarge))
                    {
                        ViewBag.msg = "Wrong File type " + fileExtLarge;
                        return(View());
                    }
                    model.BandImageName = uniqueFileNameLarge;
                }

                if (model.BandImageMobile != null)
                {
                    var    tupleSmall          = UploadedFileSmall(model);
                    string uniqueFileNameSmall = tupleSmall.Item1;
                    string fileExtSmall        = tupleSmall.Item2;
                    long   fileSizeSmall       = tupleSmall.Item3;

                    // if file is greater than 5 MB
                    if (fileSizeSmall > 5000000)
                    {
                        ViewBag.msg = "Image Small Too Big: " + fileSizeSmall.ToString();

                        return(View());
                    }
                    // if file is not a whitelisted type
                    if (!permittedExtensions.Contains(fileExtSmall))
                    {
                        ViewBag.msg = "Wrong File type " + fileExtSmall;
                        return(View());
                    }
                    model.BandImageMobileName = uniqueFileNameSmall;
                }

                Band newBand = new Band
                {
                    BandTitle       = model.BandTitle,
                    BandGenre       = model.BandGenre,
                    BandDescription = model.BandDescription,
                    BandImage       = model.BandImageName,
                    BandImageMobile = model.BandImageMobileName,
                    BandPrice       = model.BandPrice,
                    Stars           = model.Stars,
                    BandDate        = model.BandDate,
                    BandArea        = model.BandArea
                };

                _context.Add(newBand);
                _context.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }

            return(View());
        }
        public IActionResult UpdateBandImageMobile(BandForm model)
        {
            if (model.BandImageMobile != null)
            {
                var      tupleSmall          = UploadedFileSmall(model);
                string   uniqueFileNameSmall = tupleSmall.Item1;
                string   fileExtSmall        = tupleSmall.Item2;
                long     fileSizeSmall       = tupleSmall.Item3;
                string[] permittedExtensions = { ".gif", ".jpg", ".jpeg", ".png" };

                // if file is greater than 5 MB
                if (fileSizeSmall > 5000000)
                {
                    ViewBag.msg = "Image Small Too Big: " + fileSizeSmall.ToString();

                    return(View());
                }
                // if file is not a whitelisted type
                if (!permittedExtensions.Contains(fileExtSmall))
                {
                    ViewBag.msg = "Wrong File type " + fileExtSmall;
                    return(View());
                }

                if (model.BandImageName != null)
                {
                    Band editBand = new Band
                    {
                        BandID          = model.BandID,
                        BandTitle       = model.BandTitle,
                        BandGenre       = model.BandGenre,
                        BandDescription = model.BandDescription,
                        BandImage       = model.BandImageName,
                        BandImageMobile = uniqueFileNameSmall,
                        BandPrice       = model.BandPrice,
                        Stars           = model.Stars,
                        BandDate        = model.BandDate,
                        BandArea        = model.BandArea
                    };
                    _context.Bands.Update(editBand);
                }
                else
                {
                    Band editBand = new Band
                    {
                        BandID          = model.BandID,
                        BandTitle       = model.BandTitle,
                        BandGenre       = model.BandGenre,
                        BandDescription = model.BandDescription,
                        BandImageMobile = uniqueFileNameSmall,
                        BandPrice       = model.BandPrice,
                        Stars           = model.Stars,
                        BandDate        = model.BandDate,
                        BandArea        = model.BandArea
                    };
                    _context.Bands.Update(editBand);
                }

                _context.SaveChanges();
                return(RedirectToAction("Index"));
            }
            if (model.BandImageMobileName != null)
            {
                Band editBand = new Band
                {
                    BandID          = model.BandID,
                    BandTitle       = model.BandTitle,
                    BandGenre       = model.BandGenre,
                    BandDescription = model.BandDescription,
                    BandImage       = model.BandImageName,
                    BandImageMobile = model.BandImageMobileName,
                    BandPrice       = model.BandPrice,
                    Stars           = model.Stars,
                    BandDate        = model.BandDate,
                    BandArea        = model.BandArea
                };
                _context.Bands.Update(editBand);
                _context.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }