Innovenergy_trunk/csharp/App/VrmGrabber/Controller.cs

36 lines
1.2 KiB
C#
Raw Normal View History

2023-04-27 14:59:45 +00:00
using System.ComponentModel.Design;
using System.Diagnostics.CodeAnalysis;
using System.Text.Json;
using Flurl.Util;
using InnovEnergy.App.Backend.Database;
using InnovEnergy.Lib.Victron.VictronVRM;
using Microsoft.AspNetCore.Mvc;
namespace InnovEnergy.App.Backend.Controllers;
using Token = String;
[ApiController]
[Route("api/")]
public class Controller : ControllerBase
{
[HttpPost(nameof(GetInstallation))]
[UnconditionalSuppressMessage("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "<Pending>")]
public Object GetInstallation(String serialNumber)
{
foreach (var detailList in Db.InstallationsAndDetails.Values.ToList().Select((Value, Index) => new {Value, Index}))
{
if (detailList.Value.All(detail => detail.FormattedValue != serialNumber)) continue;
var retour = JsonSerializer.Serialize(Db.InstallationsAndDetails.Keys.ToList()[detailList.Index]);
retour += JsonSerializer.Serialize(detailList.Value);
return retour;
}
return new NotFoundResult();
}
}