Error in IEnumerable [closed]

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;
            }
        }
    }
}
    
asked by anonymous 28.08.2017 / 14:43

2 answers

0

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

Remove the outermost declaration, 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, the 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 being static.

The call would look like this

todasAsNoticias = new Noticia.TodasAsNoticias().OrderByDescending(x => x.Data);
    
28.08.2017 / 15:40
2

Missing a set of parentheses in constructing object 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 have created a Noticia ... class inside another Notícia class:

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

When you've probably meant:

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