Olá, gostaria de saber como criaria uma classe para quando inicializar o sistema, onde eu possa testar se alguns dados estão cadastrados no sistema e se não estiver eu poder realizar o cadastro desses dados.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, gostaria de saber como criaria uma classe para quando inicializar o sistema, onde eu possa testar se alguns dados estão cadastrados no sistema e se não estiver eu poder realizar o cadastro desses dados.
Olá, Fagner
Você pode criar um método com nome InserirDadosIniciais() , ou algo parecido, que vai verificar se os dados iniciais já existem. Se não existirem, ele cria o dados iniciais. Recomendo usar Entity Framework, por exemplo:
using (MinhasEntidades db = new MinhasEntidades())
{
if (!db.Categorias.Any(c => c.CategoriaCodigo == "cat1"))
{
Categoria categoria = new Categoria();
categoria.CategoriaCodigo = "cat1";
categoria.Nome = "Categoria 1";
db.Categorias.Add(categoria);
db.SaveChanges();
}
}
Esse método pode ficar numa classe CategoriaDAO, por exemplo.
Já a chamada desse método pode ficar no método Application_Startup() do Global.asax.cs (se estiver usando ASP.NET 4.x) ou no método Configure() na classe Startup.cs se estiver usando ASP.NET Core.
Muito obrigado, vou testar essa solução.
Eu estou testando mas o Global.asax pede um construtor vazio do "DisciplinaDAO" , com isso o "Contexto" é null e meu IF quebra pela referencia Nula do contexto que o Application_Start Pega do Construtor Vazio do "DisciplinaDAO". Eu Tentei colocar no construtor da Classe MvcApplication, porém ocorre um erro de compilação.
protected void Application_Start()
{
DisciplinaDAO disciplina = new DisciplinaDAO();
disciplina.VerificarDisciplinasCadastradas();
}
private Contexto contexto;
public DisciplinaDAO(Contexto contexto)
{
this.contexto = contexto;
}
public DisciplinaDAO()
{
}
public void VerificarDisciplinasCadastradas()
{
var disciplinas = new List<Disciplina>();
if (!contexto.Disciplinas.Any(arg => arg.NomeDisciplina == "LINGUA PORTUGUESA"))
{
var disciplina = new Disciplina();
disciplina.NomeDisciplina = "LINGUA PORTUGUESA";
disciplina.MaximoPontos = "A";
disciplina.MediaPontos = "B";
disciplina.MinimoPonto = "C";
disciplinas.Add(disciplina);
}
}
foreach(var novadisciplina in disciplinas)
{
Salvar(novadisciplina);
}
Seu contexto está nulo, então você tem que passar instanciar o contexto e passá-lo no construtor do DAO:
using (MinhasEntidades contexto = new MinhasEntidades())
{
DisciplinaDAO disciplina = new DisciplinaDAO(contexto);
disciplina.VerificarDisciplinasCadastradas();
}
Obrigado, agora foi que é uma beleza.
Código
Contexto contexto = new Contexto();
DisciplinaDAO disciplina = new DisciplinaDAO(contexto);
disciplina.VerificarDisciplinasCadastradas();
Excelente, Fagner! Qualquer coisa, estamos à disposição!