static void Main(string[] args) { Console.Write("Quantidade de nomes: "); int qtdNomes = 0; if (int.TryParse(Console.ReadLine(), out qtdNomes)) { try { List <string> nomes = new List <string>(); //Receber os nomes for (int i = 1; i <= qtdNomes; i++) { Console.Write(i + "º nome: "); nomes.Add(Console.ReadLine()); } //Instância das classes NormasABNT abnt = new NormasABNT(nomes); ProcessarReferencias _ref = new ProcessarReferencias(); //Processando os nomes e passando como parâmetro a norma utilizada List <Autor> Autores = _ref.ProcessarNomes(abnt); //Ordenando em ordem alfabética com Linq Autores.Sort((autor1, autor2) => autor1.Sobrenome.ToUpper().CompareTo(autor2.Sobrenome.ToUpper())); //Exibindo os nomes Console.WriteLine(); Autores.ForEach(autor => Console.WriteLine(autor.ToString())); } catch (Exception ex) { Console.WriteLine("Houve um erro ao processar os nomes. " + ex.Message); } } else { Console.WriteLine("Digite apenas números"); } Console.ReadKey(); }
public void ProcessarNomesTeste() { List <string> nomes = new List <string> { "SIlva", "Immanuel Kant", "Arthur Schopenhauer", "João cabral DE melo Neto" }; List <string> valorEsperado = new List <string> { "SILVA", "KANT, Immanuel", "SCHOPENHAUER, Arthur", "MELO NETO, João Cabral de" }; List <string> resultados = new List <string>(); NormasABNT abnt = new NormasABNT(nomes); ProcessarReferencias _ref = new ProcessarReferencias(); List <Autor> autores = _ref.ProcessarNomes(abnt); foreach (var autor in autores) { resultados.Add(autor.ToString()); } CollectionAssert.AreEqual(valorEsperado, resultados, "Lista de nomes incorreta!"); }