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); }