Error in the Ienumerable

Asked

Viewed 77 times

0

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel.DataAnnotations;

namespace Rotas.Models
{
    public class Noticia
    {
        public class Noticia
        {
            public int NoticiaId { get; set; }
            public string Titulo { get; set; }
            public string Conteudo { get; set; }
            public string Categoria { get; set; }
            [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
            public DateTime Data { get; set; }
            /* Cria uma array do tipo IEnumerable que é mais sofisticado e que joga um tanto de objetos do tipo Noticia dentro*/
            public IEnumerable<Noticia> TodasAsNoticias()
            {

                // instancia uma coleção de noticias
                var retorno = new Collection<Noticia>
                {
                    new Noticia
                        {
                            NoticiaId = 1,
                            Categoria = "Esportes",
                            Titulo = "Felipe Massa ganha F1",
                            Conteudo = "Numa tarde de chuva Felipe Massa ganha F1 no Brasil...",
                            Data = new DateTime(2012,7,5)


                        },
                    new Noticia
                        {
                            NoticiaId = 2,
                            Categoria = "Política",
                            Titulo = "Presidente assina convênios",
                            Conteudo = "Durante reunião o presidente Ismael Freitas assinou os convênios...",
                            Data = new DateTime(2012,7,3)
                        },
                    new Noticia
                        {
                            NoticiaId = 3,
                            Categoria = "Política",
                            Titulo = "Vereador é eleito pela 4ª vez",
                            Conteudo = "Vereador Fabio Pratt é eleito pela quarta vez...",
                            Data = new DateTime(2012,7,20)
                        },
                    new Noticia
                        {
                            NoticiaId = 4,
                            Categoria = "Esportes",
                            Titulo = "O tão sonhado titulo chegou",
                            Conteudo = "Em um jogo que levou os torcedores ao delirio...",
                            Data = new DateTime(2012,7,18)
                        },
                    new Noticia
                        {
                            NoticiaId = 5,
                            Categoria = "Humor",
                            Titulo = "O Comediante Anderson Renato fará shou hoje",
                            Conteudo = "O comediante mais engraçados dos comentários do Youtube fará show...",
                            Data = new DateTime(2012,7,14)
                        },
                    new Noticia
                        {
                            NoticiaId = 6,
                            Categoria = "Policial",
                            Titulo = "Tenente coronel Lucas Farias Santos assume o controle",
                            Conteudo = "Durante a retomada do morro o tenente coronel disse...",
                            Data = new DateTime(2012,7,19)
                        },
                    new Noticia
                        {
                            NoticiaId = 7,
                            Categoria = "Esportes",
                            Titulo = "Atacante do Barcelona faz 4 gols",
                            Conteudo = "O atacante Lucas Farias Santos Messi, fez 4 gols e decidiu o titulo...",
                            Data = new DateTime(2012,7,8)
                        }
                };
                return retorno;
            }
        }
    }
}
  • Is the Noticia class static? What is the code for "Routes"?

  • Routes is the name of the project, it is not statistical

  • Please post the code in text, not images.

2 answers

2

Missing a parenthesis set in object construction Noticia:

todasAsNoticias = new Noticia.TodasAsNoticias().OrderByDescending(x => x.Data);

Should be:

todasAsNoticias = new Noticia().TodasAsNoticias().OrderByDescending(x => x.Data);

Issue 1

Also according to your image, you created a class Noticia... within another class Notícia:

public class Noticia 
{
  public class Noticia 
  {
    public IEnumerable<Noticia> TodasAsNoticias()
    {
      // Implementação...
    }
  }
}

When you probably meant:

public class Noticia 
{
  public IEnumerable<Noticia> TodasAsNoticias()
  {
    // Implementação...
  }
}    
  • Error 1 'Routes.Models.Noticia' does not contain a Definition for 'Todasasnoticias' and no Extension method 'Todasasnoticias' Accepting a first argument of type 'Routes.Models.Noticia' could be found (are you Missing a using Directive or an Assembly Reference?) Now make that mistake

  • TodasAsNoticias is a class instance method Noticia?

  • Yes yes, Todasasnoticias is in the model(News class)

  • 1

    @Thalessilveira in this case should not give this error. You can edit your question and add the class Noticia entire?

  • You could post the full code of the Noticia class?

  • @Genos ready I edited, give a look

Show 1 more comment

0


There’s a mess there. You declare twice the class Noticia, one inside the other.

Remove the most external statement, leaving the code like this:

namespace Rotas.Model 
{
    public class Noticia 
    {
        // Membros da classe 

        public IEnumerable<Noticia> TodasAsNoticias()
        {
            // Todo o código do método
        }
    }
}

In the controller, parentheses are missing to initialize the class

todasAsNoticias = new Noticia().TodasAsNoticias().OrderByDescending(x => x.Data);

Note that this method could be static. In this way, it would not be necessary to create an instance of the class to call it, since it does not need a news instance, I think it is much more sensible to create the method by being static.

The call would look like this

todasAsNoticias = new Noticia.TodasAsNoticias().OrderByDescending(x => x.Data);
  • Yes now that posted the code I got to see thank rsrs !

Browser other questions tagged

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