TourIAm/TIAMWebApp/Server/Controllers/LoggerApiController.cs

69 lines
2.4 KiB
C#

using AyCode.Core.Consts;
using AyCode.Entities.Server.LogItems;
using AyCode.Services.SignalRs;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using TIAM.Database.DataLayers.Admins;
using TIAM.Services;
using TIAMWebApp.Server.Services;
using TIAMWebApp.Shared.Application.Models;
using TIAMWebApp.Shared.Application.Models.ClientSide.UI;
namespace TIAMWebApp.Server.Controllers
{
[Authorize]
[ApiController]
[EnableCors("_myAllowSpecificOrigins")]
[Route("api/v1/[controller]")]
public class LoggerApiController(LoggerToLoggerApiController logger, AdminDal adminDal) : ControllerBase
{
// = new TIAM.Core.Loggers.Logger<LoggerApiController>();
[AllowAnonymous]
[HttpPost]
[Route(APIUrls.AddLogItemRouteName)]
public async Task AddLogItem(AcLogItem? logItem)
{
try
{
if (logItem == null)
{
logger.Error("AddLogItem; LogItem == null");
//_logger.Writer<ConsoleLogWriter>().Detail("");
return;
}
//logItem.LogHeaderId = ???
logItem.TimeStampUtc = DateTime.UtcNow;
logger.Write(logItem);
//_logger.Writer<IAcConsoleLogWriter>()?.Write(logItem.AppType, logItem.LogLevel, logItem.Text, logItem.CallerName, logItem.CategoryName, logItem.ErrorType, logItem.Exception);
//_logger.Writer<DbLogItemWriter>().WriteLogItemAsync(logItem);
}
catch (Exception ex)
{
Console.WriteLine($@"ERROR!!! {nameof(LoggerApiController)}->AddLogItem; ex: {ex.Message}{AcEnv.NL}{AcEnv.NL}{ex}");
}
}
[AllowAnonymous]
[HttpGet]
[Route(APIUrls.GetAllLogItemsRouteName)]
[SignalR(SignalRTags.GetAllLogItems)]
public async Task<List<LogItemViewerModel>> GetAllLogItems()//(int takeCount, string filterText)
{
var logItemList = await adminDal.GetLogItemsAsync(1000);
var resultList = new List<LogItemViewerModel>(logItemList.Count);
foreach (var logItem in logItemList)
{
resultList.Add(new LogItemViewerModel(Guid.NewGuid(), logItem, logItem.LogHeaderId));
}
return resultList;
}
}
}