public async Task <IActionResult> Download(LetterListViewModel model) { _logger.LogInformation("Post to Download action"); _logger.LogInformation(model.PageTitle); var request = "letters"; var serializerOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; var myclient = _clientFactory.CreateClient("LetterAPI"); using (var Response = await myclient.GetAsync(request)) { if (Response.StatusCode == System.Net.HttpStatusCode.OK) { var apiResponse = await Response.Content.ReadAsStringAsync(); var Templates = JsonSerializer.Deserialize <List <Letter> >(apiResponse, serializerOptions); var selected = from letters in Templates where model.SelectedLetters.Contains(letters.LetterName) //model.SelectLetters.SelectedValues.AsQueryable() select letters; var templatebytes = JsonSerializer.SerializeToUtf8Bytes <List <Letter> >(selected.ToList(), serializerOptions); return(File(templatebytes, "application/json", "mytemplates.json")); } else { ModelState.Clear(); ModelState.AddModelError(string.Empty, "Username or Password is Incorrect"); return(View()); } } }
public async Task <IActionResult> Index() { LetterListViewModel model = new LetterListViewModel() { PageTitle = "Templates" }; var serializerOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; var myclient = _clientFactory.CreateClient("LetterAPI"); model.Sections = await GetSections(serializerOptions, myclient); model.Letters = await GetLetters(serializerOptions, myclient); //model.SelectedLetters = new SelectList(model.Letters, "LetterName", "LetterName"); return(View(model)); }