Now it should be an easy way to see in the WebAPI. First,return the data for all software that respected that :
public static IEndpointRouteBuilder UseAMS(this IEndpointRouteBuilder endpoints)
{
endpoints.MapGet("/ams/All",async app =>
{
var data = AboutMySoftware.AllDefinitions.Select(it => it).ToArray();
await app.Response.WriteAsJsonAsync(data);
});
return endpoints;
}
Now,how can I make a small html to display things ? I can do with Razor Library – but it is too big and maybe the developers do not want to have this dependency. So I decided for https://www.nuget.org/packages/Transplator/ – fairly easy to use. And is another RSCG that converts template code into C# code.
So now the code looks like this:
public static IEndpointRouteBuilder UseAMS(this IEndpointRouteBuilder endpoints)
{
endpoints.MapGet("/ams/All",async app =>
{
var data = AboutMySoftware.AllDefinitions.Select(it => it).ToArray();
await app.Response.WriteAsJsonAsync(data);
});
endpoints.MapGet("/ams/index",app =>
{
var response = new ASMTemplate().Render();
app.Response.ContentType = "text/html";
return app.Response.WriteAsync(response);
});
return endpoints;
}
where the ASMTemplate is
<style>
table {
font-family: arial,sans-serif;
border-collapse: collapse;
width: 100%;
}
td {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
th{
background-color: black;
color: white;
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
<table>
<tr>
<th>Nr</td>
<th>Component</th>
<th>Date</th>
<th>Commit</th>
<th>RepoUrl</th>
</tr>
{%~ int i=1; ~%}
{%~ foreach(var item in AMS.AboutMySoftware.AllDefinitions){ %}
<tr>
<td>{% i++ %}</td>
<td>{% item.Key %} </td>
<td>{% item.Value.DateGenerated %} </td>
<td>{% item.Value.CommitId %} </td>
<td>{% item.Value.RepoUrl %}</td>
</tr>
{% } %}
</table>
It is time now to make the nuget packages.
Leave a Reply