public async Task <IActionResult> Edit(int id, [Bind("IdEspecie,NomeCient,NomeVulgar,FamiliaIdFamilia,FamiliaGrupoIdGrupo")] Especie especie) { if (id != especie.IdEspecie) { return(NotFound()); } //validation if (especie.NomeCient == null) { ModelState.AddModelError("NomeCient", "O nome científico é um campo requirido."); } if (especie.NomeVulgar == null) { ModelState.AddModelError("NomeVulgar", "O nome vulgar é um campo requirido."); } var val_nomecient = await _context.Especie .SingleOrDefaultAsync(m => m.NomeCient == especie.NomeCient); if (val_nomecient != null && val_nomecient.IdEspecie != especie.IdEspecie) { ModelState.AddModelError("NomeCient", "Não podem existir duas espécies com o mesmo nome científico."); } var val_family_group = await _context.Familia .SingleOrDefaultAsync(m => m.IdFamilia == especie.FamiliaIdFamilia); if (val_family_group.GrupoIdGrupo != especie.FamiliaGrupoIdGrupo) { ModelState.AddModelError("FamiliaIdFamilia", "A familia selecionada não pertence ao grupo selecionado."); ModelState.AddModelError("FamiliaGrupoIdGrupo", "O grupo selecionado não contém a familia selecionada."); } if (ModelState.IsValid) { try { var old_especie = await _context.Especie .SingleOrDefaultAsync(m => m.IdEspecie == id); _context.Entry(old_especie).CurrentValues.SetValues(especie); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EspecieExists(especie.IdEspecie)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["FamiliaIdFamilia"] = new SelectList(_context.Familia, "IdFamilia", "NomeFamilia"); ViewData["GrupoIdGrupo"] = new SelectList(_context.Grupo, "IdGrupo", "NomeGrupo"); return(View(especie)); }
public async Task <IActionResult> Edit(int id, [Bind("IdEspecie,NomeCient,NomeVulgar,FamiliaIdFamilia,GrupoIdGrupo")] Especie especie) { if (id != especie.IdEspecie) { return(NotFound()); } //validation var val_nomecient = await _context.Especie .SingleOrDefaultAsync(m => m.NomeCient == especie.NomeCient); if (val_nomecient != null && val_nomecient.IdEspecie != especie.IdEspecie) { ModelState.AddModelError("NomeCient", string.Format("Já existe uma espécie com o nome {0}.", especie.NomeCient)); } var val_family_group = await _context.Familia .SingleOrDefaultAsync(m => m.IdFamilia == especie.FamiliaIdFamilia); if (val_family_group.GrupoIdGrupo != especie.GrupoIdGrupo) { ModelState.AddModelError("FamiliaIdFamilia", "A familia selecionada não pertence ao grupo selecionado."); ModelState.AddModelError("GrupoIdGrupo", "O grupo selecionado não contém a familia selecionada."); } if (ModelState.IsValid) { try { var old_especie = await _context.Especie .SingleOrDefaultAsync(m => m.IdEspecie == id); _context.Entry(old_especie).CurrentValues.SetValues(especie); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EspecieExists(especie.IdEspecie)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["FamiliaIdFamilia"] = new SelectList(_context.Familia, "IdFamilia", "NomeFamilia", especie.FamiliaIdFamilia).Prepend(new SelectListItem() { Text = "---Selecione uma Familia---", Value = "" }); ViewData["GrupoIdGrupo"] = new SelectList(_context.Grupo, "IdGrupo", "NomeGrupo", especie.GrupoIdGrupo).Prepend(new SelectListItem() { Text = "---Selecione um Grupo---", Value = "" }); return(View(especie)); }
public async Task <IActionResult> Create([Bind("IdPerfil,NomePerfil,IsDefault")] Perfil Perfil, List <string> roles) { //validation var val_code = await _context.Perfil .SingleOrDefaultAsync(p => p.NomePerfil == Perfil.NomePerfil); if (val_code != null) { ModelState.AddModelError("NomePerfil", string.Format("Já existe um Perfil com o nome {0}.", Perfil.NomePerfil)); } if (ModelState.IsValid) { //check if default exists if (Perfil.IsDefault == 1) { var default_profile = await _context.Perfil.SingleOrDefaultAsync(p => p.IsDefault == 1); default_profile.IsDefault = 0; _context.Perfil.Attach(default_profile); _context.Entry(default_profile).Property(p => p.IsDefault).IsModified = true; } else { Perfil.IsDefault = 0; } _context.Add(Perfil); foreach (string role in roles) { _context.Add(new ProfileRole { IdPerfil = Perfil.IdPerfil, RoleId = await _roleManager.GetRoleIdAsync(await _roleManager.FindByNameAsync(role)) }); } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["checked"] = roles; return(View(Perfil)); }
public async Task <IActionResult> Edit(int id, [Bind("IdFamilia,NomeFamilia,GrupoIdGrupo")] Familia familia) { if (id != familia.IdFamilia) { return(NotFound()); } //validation var val_nome = await _context.Familia .SingleOrDefaultAsync(m => m.NomeFamilia == familia.NomeFamilia); if (val_nome != null && val_nome.IdFamilia != familia.IdFamilia) { ModelState.AddModelError("NomeFamilia", string.Format("Já existe uma família com o nome {0}.", familia.NomeFamilia)); } if (ModelState.IsValid) { try { //update family var old_familia = await _context.Familia .SingleOrDefaultAsync(m => m.IdFamilia == id); /* var old_familia = await _context.Familia * .SingleOrDefaultAsync(m => m.IdFamilia == id);*/ _context.Entry(old_familia).CurrentValues.SetValues(familia); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FamiliaExists(familia.IdFamilia)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["GrupoIdGrupo"] = new SelectList(_context.Grupo, "IdGrupo", "NomeGrupo").Prepend(new SelectListItem() { Text = "---Selecione um Grupo---", Value = "" }); return(View(familia)); }
public async Task <IActionResult> Edit(int id, [Bind("IdGrupo,NomeGrupo")] Grupo grupo) { if (id != grupo.IdGrupo) { return(NotFound()); } //validation if (grupo.NomeGrupo == null) { ModelState.AddModelError("NomeGrupo", "O nome é um campo requirido."); } var val_nome = await _context.Grupo .SingleOrDefaultAsync(m => m.NomeGrupo == grupo.NomeGrupo); if (val_nome != null && val_nome.IdGrupo != grupo.IdGrupo) { ModelState.AddModelError("NomeGrupo", "Não podem existir dois grupos com o mesmo nome."); } if (ModelState.IsValid) { try { var old_grupo = await _context.Grupo .SingleOrDefaultAsync(m => m.IdGrupo == id); _context.Entry(old_grupo).CurrentValues.SetValues(grupo); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!GrupoExists(grupo.IdGrupo)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(grupo)); }
public async Task <IActionResult> Edit(int id, [Bind("IdFamilia,NomeFamilia,GrupoIdGrupo")] Familia familia) { if (id != familia.IdFamilia) { return(NotFound()); } //validation if (familia.NomeFamilia == null) { ModelState.AddModelError("NomeFamilia", "O nome é um campo requirido."); } /* if (familia.GrupoIdGrupo == 0) * { * ModelState.AddModelError("GrupoIdGrupo", "É requirido que cada família pertença a um grupo."); * }*/ var val_nome = await _context.Familia .SingleOrDefaultAsync(m => m.NomeFamilia == familia.NomeFamilia); if (val_nome != null && val_nome.IdFamilia != familia.IdFamilia) { ModelState.AddModelError("NomeFamilia", "Não podem existir duas familias com o mesmo nome."); } if (ModelState.IsValid) { try { //update family /*var old_familia = await _context.Familia * .SingleOrDefaultAsync(m => m.IdFamilia == id);*/ //update group id on species if there are species in the edited family //(the fact species are directly connected to a group in itself is hard to understand //considering the information can always be gotten from family, which we're including anyway) /*var especies = await _context.Especie * .Where(e => e.FamiliaIdFamilia == familia.IdFamilia) * .ToArrayAsync(); * _context.UpdateRange(especies); * if (especies != null && especies[0].FamiliaGrupoIdGrupo != familia.GrupoIdGrupo) * { * foreach (var e in especies) * { * e.FamiliaGrupoIdGrupo = familia.GrupoIdGrupo; * } * }*/ var old_familia = await _context.Familia .SingleOrDefaultAsync(m => m.IdFamilia == id); _context.Entry(old_familia).CurrentValues.SetValues(familia); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FamiliaExists(familia.IdFamilia)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["GrupoIdGrupo"] = new SelectList(_context.Grupo, "IdGrupo", "NomeGrupo", familia.GrupoIdGrupo); return(View(familia)); }