Example #1
0
        public IActionResult Upload()
        {
            LetterUploadViewModel model = new LetterUploadViewModel()
            {
                PageTitle = "Templates"
            };

            return(View(model));
        }
Example #2
0
        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());
            }
        }