Skip to content

Commit

Permalink
Aplicação .NET Web com as funções de converter, validar e limpar
Browse files Browse the repository at this point in the history
  • Loading branch information
marquescharlon committed Mar 15, 2023
1 parent e669971 commit e5b7ca3
Show file tree
Hide file tree
Showing 7 changed files with 127 additions and 12 deletions.
6 changes: 5 additions & 1 deletion AppConverter/AppConverter/Controllers/HomeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,12 @@ public IActionResult Privacy()
{
return View();
}
public IActionResult Repositorio()
{
return View();
}

[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
Expand Down
36 changes: 32 additions & 4 deletions AppConverter/AppConverter/Views/Home/Index.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,35 @@
ViewData["Title"] = "Home Page";
}

<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>App Converter JSON</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
</head>
<body>

<div class="container" id="app_converter">
<div class="content-form">
<form>
<textarea class="form-control" id="textJSON" rows="6" placeholder="Digite ou cole aqui seu texto JSON:"></textarea>
<div class="d-grid gap-3">
<br>
<button type="submit" class="btn btn-outline-success">Converter</button>
<button type="button" id="btn-limpar" class="btn btn-outline-secondary">Limpar</button>
<br>
</div>
</form>
</div>
<div class="content-form">
<textarea class="form-control" id="textCSV" rows="6" disabled
placeholder="Seu texto convertido em CSV aparecerá aqui."></textarea>
</div>
</div>

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>
<script src="./js/siteConverter.js"></script>
</body>
</html>
4 changes: 4 additions & 0 deletions AppConverter/AppConverter/Views/Home/Privacy.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@
<h1>@ViewData["Title"]</h1>

<p>Use this page to detail your site's privacy policy.</p>

<p>
Você poderá encontrar o código-fonte no repositório <a href="https://github.com/marquescharlon/JSON_to_CSV_Converter" target="_blank">GitHub</a>
</p>
9 changes: 9 additions & 0 deletions AppConverter/AppConverter/Views/Home/Repositorio.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@{
ViewData["Title"] = "Repositório da Aplicação";
}
<h1>@ViewData["Title"]</h1>

<div class="container">
<p>Caso deseja consultar o código-fonte será possível através do respositório que se encontra no <a href="https://github.com/marquescharlon/JSON_to_CSV_Converter" target="_blank">https://github.com/marquescharlon/JSON_to_CSV_Converter</a>.</p>
</div>

9 changes: 6 additions & 3 deletions AppConverter/AppConverter/Views/Shared/_Layout.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
<link rel="stylesheet" href="~/AppConverter.styles.css" asp-append-version="true" />
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
</head>
<body>
<header>
Expand All @@ -23,7 +24,7 @@
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Repositorio">Repositório GitHub</a>
</li>
</ul>
</div>
Expand All @@ -38,12 +39,14 @@

<footer class="border-top footer text-muted">
<div class="container">
&copy; 2023 - AppConverter - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>

&copy; 2023 - AppConverter - <a asp-area="" asp-controller="Home" asp-action="Repositorio">Repositório</a>
</div>
</footer>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
@await RenderSectionAsync("Scripts", required: false)
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>
</body>
</html>
</html>
4 changes: 0 additions & 4 deletions AppConverter/AppConverter/wwwroot/js/site.js

This file was deleted.

71 changes: 71 additions & 0 deletions AppConverter/AppConverter/wwwroot/js/siteConverter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
// for details on configuring this project to bundle and minify static web assets.

// Write your JavaScript code.

var appConverterForm = document.querySelector("#app_converter form");
var btnConverterLimpar = document.getElementById("btn-limpar");

appConverterForm.onsubmit = AppConverter;
btnConverterLimpar.onclick = LimparTela;

function AppConverter(e) {
e.preventDefault();

var textJSON = document.getElementById("textJSON");
var textCSV = document.getElementById("textCSV");
textCSV.innerHTML = '';

if (!validarTextoJson(textJSON.value)) return;

var dados = JSON.parse(textJSON.value);

var campos = [];
var primeiraLinha = JSON.stringify(dados[0]).split(",");
for (item of primeiraLinha) {
let nomes = item.split('"');
campos.push(nomes[1]);
}

var montar_csv = [];
montar_csv[0] = '';
for (item of campos) {
montar_csv[0] += '"' + item + '",';
}

for (var i = 0; i < dados.length; i++) {
montar_csv[i + 1] = '';
for (item of campos) {
montar_csv[i + 1] += '"' + dados[i][item] + '",';
}
}

var texto_csv = '';
for (item of montar_csv) {
texto_csv += item + "\n";
}
textCSV.innerHTML = texto_csv;
}

function LimparTela() {
document.getElementById("textJSON").value = '';
document.getElementById("textCSV").value = '';
alert("Formulário limpo conforme solicitado!");
document.location.reload(true);
}

function validarTextoJson(texto_json) {
if (texto_json.length === 0) {
alert("Necessário informar o texto JSON a ser convertido.");
return false;
}

try {
var json_val = JSON.parse(texto_json);
}
catch (e) {
alert("O JSON está no formato inválido!");
return false;
}
return true;
}

0 comments on commit e5b7ca3

Please sign in to comment.