public ActionResult GetFilms() { // TODO: Implement this controller action List <Film> filmList = _starWarsService.GetFilms().Result; AllFilmsViewModel model = _viewMapperHelper.AllFilmsMapper(filmList); return(View(model)); }
public async Task <FileContentResult> Get() { // get the film list var filmList = await _starWarsService.GetFilms(); // get the characters for these films Character[] characterArray = new Character[0]; foreach (Film film in filmList) { var result = await _starWarsService.GetCharactersByFilm(film.ObjectId); // combine and sort characters, no duplicates foreach (var character in result) { character.EpisodeId = film.EpisodeId; } characterArray = characterArray.Union(result).ToArray(); } Array.Sort(characterArray, new StarWarsComparer()); // convert names into last name, first name format foreach (var character in characterArray) { var names = character.Name.Split(" "); if (names.Length > 1) { character.Name = $"{names[1]}-{names[0]}"; } } // convert into csv file and return it. var characterList = new List <Character>(characterArray); var formatter = new CsvFormatter(); var csv = formatter.Format(characterList); byte[] fileBytes = System.Text.Encoding.UTF8.GetBytes(csv); // return csv file return(File(fileBytes, "text/csv", "StarWarsCharacters.csv")); }