Do you need to do a controller method to get a model list method?

Asked

Viewed 112 times

0

I have a question if you need and if yes how to create the list method in the controller (I am using MVC)

follows the code in the list model:

// MÉTODO PARA LISTAR RANKING DE CERTA CATEGORIA
public static List<Fornecedor> RankingLista(string categoria)
{
    List<Fornecedor> ranking = new List<Fornecedor>();
    Fornecedor f = new Fornecedor();
    try
    {
        con.Open(); //ABRE CONEXÃO
        //CRIAÇÃO DE COMANDO PARA FAZER O SELECT DAS EMPRESAS JÁ FORMANDO O RANKING, DA MAIOR PARA A MENOR MÉDIA
        SqlCommand query = new SqlCommand("SELECT * FROM fornecedor WHERE categoria = @categoria ORDER BY media DESC", con);
        query.Parameters.AddWithValue("@categoria", categoria);

        SqlDataReader leitor = query.ExecuteReader();

        while (leitor.Read()) //ENQUANTO O LEITOR LER AS MEDIAS
        {
            f.Cnpj = leitor["Cnpj"].ToString();
            f.Nome_empresa = leitor["Nome_empresa"].ToString();
            f.Email = leitor["Email"].ToString();
            f.Telefone = leitor["Telefone"].ToString();
            f.Celular = leitor["Celular"].ToString();
            f.Endereco = leitor["Endereco"].ToString();
            f.Bairro = leitor["Bairro"].ToString();
            f.Cidade = leitor["Cidade"].ToString();
            f.Uf = leitor["Uf"].ToString();
            f.Cep = leitor["Cep"].ToString();
            //f.Senha = leitor["Senha"].ToString(); //NÃO VAMOS MOSTRAR A SENHA, OBVIO...
            //f.Posicao = leitor["Posicao"].ToString(); //TALVEZ PODEMOS TIRAR ESSE CAMPO DO BANCO...
            f.Slogan = leitor["Slogan"].ToString();
            f.Descricao = leitor["Descricao"].ToString();
            f.Media = float.Parse(leitor["Media"].ToString());
            f.Plano = leitor["Plano"].ToString();
            f.Imagem = leitor["Imagem"].ToString();
            f.Nome_categoria = leitor["Nome_categorias"].ToString();

            ranking.Add(f);
        }
    }
    catch (Exception ex)
    {
        ranking = null;
    }
    if (con.State == ConnectionState.Open)
        con.Close();

    return ranking;
}
  • Where is your controller? What exactly is your question?[

1 answer

0

Friend so you can use this data in your front-end needs to do the controller, because he is the one who will direct his methods. It would look something like this:

public JsonResult GetListFornecedores(string categoria){
  List<Fornecedores> lstFornecedores = SuaClasseDeModel.RankingLista(categoria);

  return Json(new { ListFornecedores = lstFornecedores });
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.