Ejemplo n.º 1
0
        public ActionResult GetFilms()
        {
            // TODO: Implement this controller action
            List <Film>       filmList = _starWarsService.GetFilms().Result;
            AllFilmsViewModel model    = _viewMapperHelper.AllFilmsMapper(filmList);

            return(View(model));
        }
Ejemplo n.º 2
0
        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"));
        }