Need to make a method in the controller to get a model list method?

0

I have a question if you need and if yes how to do to create the list method in the controller (I'm 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;
}
    
asked by anonymous 09.10.2018 / 15:35

1 answer

0

Friend for you to be able to use this data in your front-end you need to do the method in controller , because it is who will direct your methods. It would look something like this:

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

  return Json(new { ListFornecedores = lstFornecedores });
}
    
09.10.2018 / 15:42