// GET: Pokemons/Edit public ActionResult Edit(Guid?id) { if (id == null) { return(NotFound()); } var pokemon = _pokemonContext.Pokemons .Include(p => p.PokemonTypes) .SingleOrDefault(p => p.Id == id); PopulateAssignedTypeData(pokemon); if (pokemon == null) { return(NotFound()); } var pokemonEditVm = new PokemonEditVm { Id = pokemon.Id, HasAllolanForm = pokemon.HasAllolanForm, ImgUrl = pokemon.ImgUrl, Description = pokemon.Description, location = pokemon.Location, Name = pokemon.Name, }; return(View(pokemonEditVm)); }
public ActionResult Edit(Guid id, PokemonEditVm pokemonEditVm, string[] selectedTypes) { if (id != pokemonEditVm.Id) { return(NotFound()); } var pokemonToUpdate = _pokemonContext.Pokemons .Include(p => p.PokemonTypes) .ThenInclude(pt => pt.Type) .Where(p => p.Id == id) .Single(); if (ModelState.IsValid) { try { pokemonToUpdate.Name = pokemonEditVm.Name; pokemonToUpdate.Location = pokemonEditVm.location; pokemonToUpdate.Description = pokemonEditVm.Description; pokemonToUpdate.HasAllolanForm = pokemonEditVm.HasAllolanForm; if (pokemonEditVm.UploadedImage != null) { DeletePokeImage(pokemonToUpdate); pokemonToUpdate.ImgUrl = SavePokeImg(pokemonEditVm.UploadedImage); } UpdatePokemonTypes(selectedTypes, pokemonToUpdate); _pokemonContext.Update(pokemonToUpdate); _pokemonContext.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!PokemonExists(pokemonEditVm.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } PopulateAssignedTypeData(pokemonToUpdate); return(View(pokemonEditVm)); }