public IActionResult Upload() { LetterUploadViewModel model = new LetterUploadViewModel() { PageTitle = "Templates" }; return(View(model)); }
public async Task <IActionResult> Upload(LetterUploadViewModel model) { try { if (model.JsonFile.Length > 0) { var serializerOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; var jsonString = new StringBuilder(); using (var reader = new StreamReader(model.JsonFile.OpenReadStream())) { while (reader.Peek() >= 0) { jsonString.AppendLine(reader.ReadLine()); } } /* string jsonString; * //byte[] fileBytes; * using (var ms = new MemoryStream()) * { * model.JsonFile.CopyTo(ms); * byte[] fileBytes = ms.ToArray(); * jsonString = Convert.ToBase64String(fileBytes); * // act on the Base64 data * }*/ var content = new StringContent(jsonString.ToString(), System.Text.Encoding.UTF8, "application/json"); //deserialize //var Templates = JsonSerializer.Deserialize<List<Letter>>(fileBytes, serializerOptions); //post vs put var request = "letters/bundle"; var myclient = _clientFactory.CreateClient("LetterAPI"); using (var Response = await myclient.PutAsync(request, content)) { if (Response.StatusCode == System.Net.HttpStatusCode.Created) { return(View()); } else { ModelState.Clear(); ModelState.AddModelError(string.Empty, "Username or Password is Incorrect"); return(View()); } } } ViewBag.Message = "File Uploaded Successfully!!"; return(View()); } catch { ViewBag.Message = "File upload failed!!"; return(View()); } }