public void SalvarArquivo(ArquivoGerado arq, string caminho)
 {
     using (StreamWriter arquivo = File.CreateText(caminho))
     {
         JsonSerializer serializar = new JsonSerializer();
         serializar.Serialize(arquivo, arq);
     }
 }
        public string getArquivoJson(string token)
        {
            var client = new WebClient {
                Encoding = System.Text.Encoding.UTF8
            };
            var json = client.DownloadString("https://api.codenation.dev/v1/challenge/dev-ps/generate-data?token=" + token);

            JObject json_object = JObject.Parse(json);

            int    numero_casas         = (int)json_object["numero_casas"];
            string cifrado              = (string)json_object["cifrado"];
            string decifrado            = (string)json_object["decifrado"];
            string resumo_criptografico = (string)json_object["resumo_criptografico"];
            string message              = string.Empty;

            // monta o resumo sha1 do texto decifrado
            var hash = new SHA1Managed().ComputeHash(Encoding.UTF8.GetBytes(DescriptografiaCesariana(cifrado, Convert.ToInt32(numero_casas))));

            resumo_criptografico = string.Concat(hash.Select(x => x.ToString("x2")));

            // descriptando o texto do json
            decifrado = DescriptografiaCesariana(cifrado, Convert.ToInt32(numero_casas));

            // criptando o texto decifrado
            var cifradoNovo = CriptografiaCesariana(decifrado, Convert.ToInt32(numero_casas));

            if (cifradoNovo == cifrado)
            {
                ArquivoGerado arq = new ArquivoGerado();

                arq.numero_casas         = numero_casas;
                arq.token                = token;
                arq.cifrado              = cifrado;
                arq.decifrado            = decifrado;
                arq.resumo_criptografico = resumo_criptografico;

                // buscar o diretorio do appsettings.json
                var diretorio = @"C:\Users\jaqueline.carvalho\source\repos\Criptografia_Cesariana\answer.json";

                SalvarArquivo(arq, diretorio);

                string caminhoJSON = diretorio;
                string postURI     = "https://api.codenation.dev/v1/challenge/dev-ps/submit-solution?token=";
                byte[] arquivoByte = File.ReadAllBytes(caminhoJSON);

                using (MultipartFormDataContent tipoConteudo = new MultipartFormDataContent())
                {
                    tipoConteudo.Add(new StreamContent(new MemoryStream(arquivoByte)), "answer", "answer.json");
                    HttpResponseMessage resposta = new HttpClient().PostAsync(postURI + token, tipoConteudo).Result;

                    if (resposta.StatusCode.ToString().ToUpper() != "OK")
                    {
                        message = "Desafio enviado com Sucesso";
                    }
                    else
                    {
                        message = "Erro ao enviar o Desafio";
                    }
                }
            }
            return(message);
        }