Files
shelly-exporter/ShellyExporter/Program.cs
David 8892044e51 dodana podpora za temperaturni senzor addon, pm1
dodan nlog
pinganje devicov
2025-01-10 20:52:29 +01:00

67 lines
1.4 KiB
C#

using System.Text;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Hosting;
using ShellyExporter;
using System.Xml.Linq;
using NLog.Web;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
if (!builder.Environment.IsDevelopment())
{
builder.WebHost.UseKestrel();
builder.WebHost.UseUrls(builder.Configuration["Kst:Url"]);
}
//Nlog
builder.Logging.ClearProviders();
builder.Logging.SetMinimumLevel(LogLevel.Trace);
builder.Host.UseNLog();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Map("/metrics", () =>
{
var sb = new StringBuilder();
foreach (var host in builder.Configuration.GetSection("Hosts").GetChildren())
{
var id = "0";
if (host["id"] != "")
id = host["id"];
sb.Append(Metrics.Get(host["ip"],
host.Path.Replace("Hosts:", ""),
(Metrics.Version)Convert.ToInt16(host["version"]),
(Metrics.Type)Convert.ToInt16(host["type"]),
id).Result);
}
return sb.ToString();
});
app.Run();