示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }
示例#4
0
        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));
        }
示例#5
0
        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));
        }
示例#6
0
        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));
        }