public IActionResult AddAlbum(AlbumEditViewModel AlbumEditViewModel)
        {
            // Custom validation rules
            if (ModelState.GetValidationState("Album.Price") == ModelValidationState.Valid &&
                AlbumEditViewModel.Album.Price < 0)
            {
                ModelState.AddModelError(nameof(AlbumEditViewModel.Album.Price),
                                         "The price of the Album should be higher than 0.");
            }

            if (AlbumEditViewModel.Album.IsAlbumOfTheWeek && !AlbumEditViewModel.Album.InStock)
            {
                ModelState.AddModelError(nameof(AlbumEditViewModel.Album.IsAlbumOfTheWeek),
                                         "Only Albums that are in stock should be Album of the Week.");
            }

            AlbumEditViewModel.Album.CategoryId = AlbumEditViewModel.CategoryId;

            //Basic validation
            if (ModelState.IsValid)
            {
                _AlbumRepository.CreateAlbum(AlbumEditViewModel.Album);
                return(RedirectToAction("Index"));
            }
            return(View(AlbumEditViewModel));
        }
Пример #2
0
        public ActionResult Edit(AlbumEditViewModel albumViewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var album = new Album()
                    {
                        AlbumArtUrl = albumViewModel.AlbumArtUrl,
                        AlbumId     = albumViewModel.AlbumId,
                        ArtistId    = albumViewModel.ArtistId,
                        GenreId     = albumViewModel.GenreId,
                        //Note lack of price in view model
                        Price = 9.99m,
                        Title = albumViewModel.Title
                    };

                    _db.Entry(album).State = EntityState.Modified;
                    _db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                catch (DbEntityValidationException ex)
                {
                    foreach (var result in ex.EntityValidationErrors)
                    {
                        foreach (var error in result.ValidationErrors)
                        {
                            ModelState.AddModelError(error.PropertyName, error.ErrorMessage);
                        }
                    }
                }
            }
            return(View(albumViewModel));
        }
Пример #3
0
        public ActionResult Edit(AlbumEditViewModel viewModel)
        {
            // Unable to continue if viewmodel is null because we need the ID at least
            if (viewModel == null || viewModel.EditedAlbum == null)
            {
                log.Warn("Viewmodel was null");
                return(HttpStatusCodeResult(HttpStatusCode.BadRequest, "Viewmodel was null - probably JavaScript is disabled"));
            }

            try {
                viewModel.CheckModel();
            } catch (InvalidFormException x) {
                AddFormSubmissionError(x.Message);
            }

            var model = viewModel.EditedAlbum;

            // Note: name is allowed to be whitespace, but not empty.
            if (model.Names != null && model.Names.All(n => n == null || string.IsNullOrEmpty(n.Value)))
            {
                ModelState.AddModelError("Names", AlbumValidationErrors.UnspecifiedNames);
            }

            if (model.OriginalRelease != null && model.OriginalRelease.ReleaseDate != null && !OptionalDateTime.IsValid(model.OriginalRelease.ReleaseDate.Year, model.OriginalRelease.ReleaseDate.Day, model.OriginalRelease.ReleaseDate.Month))
            {
                ModelState.AddModelError("ReleaseYear", "Invalid date");
            }

            var coverPicUpload = Request.Files["coverPicUpload"];
            var pictureData    = ParsePicture(coverPicUpload, "CoverPicture");

            if (coverPicUpload == null)
            {
                AddFormSubmissionError("Cover picture was null");
            }

            if (model.Pictures == null)
            {
                AddFormSubmissionError("List of pictures was null");
            }

            if (coverPicUpload != null && model.Pictures != null)
            {
                ParseAdditionalPictures(coverPicUpload, model.Pictures);
            }

            if (!ModelState.IsValid)
            {
                return(View(CreateAlbumEditViewModel(model.Id, model)));
            }

            try {
                queries.UpdateBasicProperties(model, pictureData);
            } catch (InvalidPictureException) {
                ModelState.AddModelError("ImageError", "The uploaded image could not processed, it might be broken. Please check the file and try again.");
                return(View(CreateAlbumEditViewModel(model.Id, model)));
            }

            return(RedirectToAction("Details", new { id = model.Id }));
        }
Пример #4
0
        // GET: Albums/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var currentUser = await GetCurrentUserAsync();

            var album = await _context.Albums.Where(a => a.UserId == currentUser.Id).FirstOrDefaultAsync(a => a.Id == id);

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

            var AlbumEditViewModel = new AlbumEditViewModel();

            List <PhotoAlbum> photoAlbums = await _context.PhotoAlbums.Where(pa => pa.AlbumId == album.Id).Include(pa => pa.Photo).ToListAsync();

            AlbumEditViewModel.PhotoAlbums = photoAlbums;
            AlbumEditViewModel.Album       = album;

            return(View(AlbumEditViewModel));
        }
Пример #5
0
        private void GrabarAlbum(AlbumEditViewModel model)
        {
            var album = db.Albums.Single(x => x.AlbumId == model.AlbumId);

            album.Title              = model.Titulo;
            album.Thumbnail          = model.Caratula;
            album.ThumbnailExtension = model.CaratulaExtension;
            db.Albums.Update(album);
            db.Commit();
        }
        public IActionResult Edit(int id)
        {
            Album album = _context.Albums.Include(x => x.Nummers).FirstOrDefault(y => y.Id == id);
            AlbumEditViewModel model = new AlbumEditViewModel()
            {
                Foto = album.AlbumFoto, Naam = album.Naam, Id = id
            };

            return(View(model));
        }
        //public IActionResult EditAlbum([Bind("Album")] AlbumEditViewModel AlbumEditViewModel)
        public IActionResult EditAlbum(AlbumEditViewModel AlbumEditViewModel)
        {
            AlbumEditViewModel.Album.CategoryId = AlbumEditViewModel.CategoryId;

            if (ModelState.IsValid)
            {
                _AlbumRepository.UpdateAlbum(AlbumEditViewModel.Album);
                return(RedirectToAction("Index"));
            }
            return(View(AlbumEditViewModel));
        }
Пример #8
0
        public ActionResult Edit(AlbumEditViewModel viewModel)
        {
            if (viewModel == null)
            {
                return(HttpStatusCodeResult(HttpStatusCode.BadRequest, "Viewmodel was null - probably JavaScript is disabled"));
            }

            var model = viewModel.EditedAlbum;

            // Note: name is allowed to be whitespace, but not empty.
            if (model.Names != null && model.Names.All(n => string.IsNullOrEmpty(n.Value)))
            {
                ModelState.AddModelError("Names", AlbumValidationErrors.UnspecifiedNames);
            }

            if (model.OriginalRelease != null && model.OriginalRelease.ReleaseDate != null && !OptionalDateTime.IsValid(model.OriginalRelease.ReleaseDate.Year, model.OriginalRelease.ReleaseDate.Day, model.OriginalRelease.ReleaseDate.Month))
            {
                ModelState.AddModelError("ReleaseYear", "Invalid date");
            }

            var coverPicUpload = Request.Files["coverPicUpload"];
            var pictureData    = ParsePicture(coverPicUpload, "CoverPicture");

            if (coverPicUpload == null)
            {
                AddFormSubmissionError("Cover picture was null");
            }

            if (model.Pictures == null)
            {
                AddFormSubmissionError("List of pictures was null");
            }

            if (coverPicUpload != null && model.Pictures != null)
            {
                ParseAdditionalPictures(coverPicUpload, model.Pictures);
            }

            try {
                viewModel.CheckModel();
            } catch (InvalidFormException x) {
                AddFormSubmissionError(x.Message);
            }

            if (!ModelState.IsValid)
            {
                return(View(new AlbumEditViewModel(Service.GetAlbum(model.Id), PermissionContext, model)));
            }

            queries.UpdateBasicProperties(model, pictureData);

            return(RedirectToAction("Details", new { id = model.Id }));
        }
Пример #9
0
        // GET: Music/Edit/5
        public ActionResult Edit(int id)
        {
            Album album = _albumRepository.GetById(id);
            AlbumEditViewModel albumModel = new AlbumEditViewModel();

            albumModel.Name              = album.Name;
            albumModel.Musics            = album.Musics;
            albumModel.ExistingPhotoPath = album.Image;
            albumModel.Id   = album.AlbumId;
            albumModel.Type = album.Type;

            return(View(albumModel));
        }
        public IActionResult AddAlbum()
        {
            var categories         = _categoryRepository.Categories;
            var AlbumEditViewModel = new AlbumEditViewModel
            {
                Categories = categories.Select(c => new SelectListItem()
                {
                    Text = c.CategoryName, Value = c.CategoryId.ToString()
                }).ToList(),
                CategoryId = categories.FirstOrDefault().CategoryId
            };

            return(View(AlbumEditViewModel));
        }
Пример #11
0
        public void GrabarAlbum(AlbumEditViewModel model, Imagen imagen)
        {
            if (imagen == null)
            {
                GrabarAlbum(model); return;
            }

            var thumbnailPath = model.AlbumId.ToString().PadLeft(10, '0').GetMD5();

            model.Caratula          = thumbnailPath;
            model.CaratulaExtension = Path.GetExtension(imagen.Nombre).Replace(".", "");

            imagen.GrabaThumbnail(model.Caratula + Path.GetExtension(imagen.Nombre));
            GrabarAlbum(model);
        }
Пример #12
0
        public ActionResult Edit(AlbumEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                // Retrieve the employee being edited from the database
                Album album = _albumRepository.GetById(model.Id);
                // Update the employee object with the data in the model object
                album.AlbumId = model.Id;
                album.Name    = model.Name;
                album.Type    = model.Type;



                // If the user wants to change the photo, a new photo will be
                // uploaded and the Photo property on the model object receives
                // the uploaded photo. If the Photo property is null, user did
                // not upload a new photo and keeps his existing photo
                if (model.Image != null)
                {
                    // If a new photo is uploaded, the existing photo must be
                    // deleted. So check if there is an existing photo and delete
                    if (model.ExistingPhotoPath != null)
                    {
                        string filePath = Path.Combine(hostingEnvironment.WebRootPath,
                                                       "images", model.ExistingPhotoPath);
                        System.IO.File.Delete(filePath);
                    }
                    // Save the new photo in wwwroot/images folder and update
                    // PhotoPath property of the employee object which will be
                    // eventually saved in the database
                    album.Image = ProcessUploadedFile(model);
                }

                // Call update method on the repository service passing it the
                // employee object to update the data in the database table
                Album updatedArtiste = _albumRepository.Edit(album);
                if (updatedArtiste != null)
                {
                    return(RedirectToAction("index"));
                }
                else
                {
                    return(NotFound());
                }
            }

            return(View(model));
        }
Пример #13
0
        public ActionResult Editar(AlbumEditViewModel model, HttpPostedFileBase image)
        {
            string ruta = Server.MapPath("~/imagenes/Albums");

            try
            {
                Imagen imagen = ObtenerImagen(image, ruta);
                tienda.GrabarAlbum(model, imagen);
                return(RedirectToAction("Index", "Home"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(model));
            }
        }
        public IActionResult Edit(AlbumEditViewModel model, int id)
        {
            Album album = _context.Albums.FirstOrDefault(y => y.Id == id);

            album.Naam = model.Naam;
            if (model.FotoAanpassen != null)
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    model.FotoAanpassen.CopyTo(stream);
                    album.AlbumFoto = stream.ToArray();
                }
            }
            _context.SaveChanges();
            return(RedirectToAction("Detail", new { id = model.Id }));
        }
Пример #15
0
        public ActionResult Edit([Bind(Include = "AlbumId,GenreId,ArtistId,Title,Price,AlbumArtUrl")] Album album)
        {
            if (ModelState.IsValid)
            {
                db.Entry(album).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            var model = new AlbumEditViewModel()
            {
                Album   = album,
                Artists = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId),
                Genres  = new SelectList(db.Genres, "GenreId", "Name", album.GenreId)
            };

            return(View(model));
        }
Пример #16
0
        private string ProcessUploadedFile(AlbumEditViewModel model)
        {
            string uniqueFileName = null;

            if (model.Image != null)
            {
                string uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath, "images");
                uniqueFileName = Guid.NewGuid().ToString() + "_" + model.Image.FileName;
                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.Image.CopyTo(fileStream);
                }
            }

            return(uniqueFileName);
        }
        public ActionResult Edit(int id)
        {
            if (!HttpContext.CheckAccess(
                    ChinookResources.AlbumActions.Edit,
                    ChinookResources.Album,
                    id.ToString()))
            {
                return(this.AccessDenied());
            }

            var album = _musicRepository.GetAlbum(id);

            if (album == null)
            {
                return(RedirectToAction("Index"));
            }

            var vm = new AlbumEditViewModel(album, _musicRepository);

            return(View("Edit", vm));
        }
Пример #18
0
        // GET: StoreManager/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Album album = db.Albums.Find(id);

            if (album == null)
            {
                return(HttpNotFound());
            }
            var model = new AlbumEditViewModel()
            {
                Album   = album,
                Artists = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId),
                Genres  = new SelectList(db.Genres, "GenreId", "Name", album.GenreId)
            };

            return(View(model));
        }
        //public IActionResult EditAlbum([FromRoute]int AlbumId)
        //public IActionResult EditAlbum([FromQuery]int AlbumId, [FromHeader] string accept)
        public IActionResult EditAlbum([FromQuery] int AlbumId, [FromHeader(Name = "Accept-Language")] string accept)
        {
            var categories = _categoryRepository.Categories;

            var Album = _AlbumRepository.Albums.FirstOrDefault(p => p.AlbumId == AlbumId);

            var AlbumEditViewModel = new AlbumEditViewModel
            {
                Categories = categories.Select(c => new SelectListItem()
                {
                    Text = c.CategoryName, Value = c.CategoryId.ToString()
                }).ToList(),
                Album      = Album,
                CategoryId = Album.CategoryId
            };

            var item = AlbumEditViewModel.Categories.FirstOrDefault(c => c.Value == Album.CategoryId.ToString());

            item.Selected = true;

            return(View(AlbumEditViewModel));
        }
Пример #20
0
        public PartialViewResult AlbumDataPartial(AlbumEditViewModel model)
        {
            if (this.ModelState.IsValid && model != null)
            {
                var album = this.albumService.GetById(model.Id);

                album.TitleBg       = model.TitleBg;
                album.TitleEn       = model.TitleEn;
                album.DescriptionBg = model.DescriptionBg;
                album.DescriptionEn = model.DescriptionEn;
                album.Access        = model.Access;

                this.albumService.Update(album);

                var result =
                    this.albumService.GetAllReqursive().Where(a => a.Id == album.Id).To <AlbumEditViewModel>().First();

                return(this.PartialView("_AlbumDataPartial", result));
            }

            return(this.PartialView("_AlbumDataPartial", model));
        }
Пример #21
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            _vm = (Application.Current as App).Container.GetService <AlbumEditViewModel>();

            var vm = e.Parameter as AlbumViewModel;

            if (vm != null)
            {
                _vm.Id         = vm.Id;
                _vm.Title      = vm.Title;
                _vm.ArtistId   = vm.ArtistId;
                _vm.ArtistName = vm.ArtistName;
                _vm.Year       = vm.Year;
                _vm.Cover      = vm.Cover;
            }

            _vm.BackCommand = new RelayCommand(o => Frame.GoBack());
            _vm.LoadArtists();

            DataContext = _vm;

            base.OnNavigatedTo(e);
        }
Пример #22
0
        public ActionResult Edit(AlbumEditViewModel editModel)
        {
            if (ModelState.IsValid)
            {
                var updateSucceded = this.AlbumService.EditAlbum(editModel);
                if (updateSucceded)
                {
                    return this.RedirectToAction("Index");
                }
            }

            return this.View(editModel);
        }