114 lines
3.7 KiB
C#
114 lines
3.7 KiB
C#
using GPW.Data;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.Logging;
|
|
using NLog;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace GPW.Api.Data
|
|
{
|
|
public class GpwDataService : IDisposable
|
|
{
|
|
#region Private Fields
|
|
|
|
private static IConfiguration _configuration;
|
|
private static ILogger<GpwDataService> _logger;
|
|
|
|
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
|
|
|
#endregion Private Fields
|
|
|
|
#region Public Fields
|
|
|
|
public static GPW.Data.Controllers.DbController dbController;
|
|
|
|
#endregion Public Fields
|
|
|
|
#region Public Constructors
|
|
|
|
public GpwDataService(IConfiguration configuration, ILogger<GpwDataService> logger)
|
|
{
|
|
_logger = logger;
|
|
_configuration = configuration;
|
|
// conf DB
|
|
string connStrDB = _configuration.GetConnectionString("Gpw.DB");
|
|
if (string.IsNullOrEmpty(connStrDB))
|
|
{
|
|
_logger.LogError("ConnString empty!");
|
|
}
|
|
else
|
|
{
|
|
dbController = new GPW.Data.Controllers.DbController(configuration);
|
|
_logger.LogInformation("DbController OK");
|
|
}
|
|
}
|
|
|
|
#endregion Public Constructors
|
|
|
|
#region Public Methods
|
|
|
|
public async Task<List<GPW.Data.DBModels.CheckVc19>> ChecksGetByDip(int idxDip)
|
|
{
|
|
DateTime dtFine = DateTime.Today.AddDays(1);
|
|
List<GPW.Data.DBModels.CheckVc19> dbResult = new List<GPW.Data.DBModels.CheckVc19>();
|
|
Stopwatch stopWatch = new Stopwatch();
|
|
stopWatch.Start();
|
|
dbResult = dbController.GetChecksVC19Filt(idxDip, dtFine.AddMonths(-1), dtFine);
|
|
stopWatch.Stop();
|
|
TimeSpan ts = stopWatch.Elapsed;
|
|
Log.Trace($"Effettuata lettura da DB per ChecksGetByDip: {ts.TotalMilliseconds} ms");
|
|
|
|
return await Task.FromResult(dbResult);
|
|
}
|
|
|
|
public async Task<List<GPW.Data.DBModels.CheckVc19>> ChecksGetLast(int numRecord)
|
|
{
|
|
List<GPW.Data.DBModels.CheckVc19> dbResult = new List<GPW.Data.DBModels.CheckVc19>();
|
|
Stopwatch stopWatch = new Stopwatch();
|
|
stopWatch.Start();
|
|
dbResult = dbController.GetChecksVC19(numRecord);
|
|
stopWatch.Stop();
|
|
TimeSpan ts = stopWatch.Elapsed;
|
|
Log.Trace($"Effettuata lettura da DB per ChecksGetLast: {ts.TotalMilliseconds} ms");
|
|
|
|
return await Task.FromResult(dbResult);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
// Clear database controller
|
|
dbController.Dispose();
|
|
}
|
|
|
|
public async Task<bool> InsertCheck(DCCDecode updItem, string clientIp)
|
|
{
|
|
bool done = false;
|
|
Stopwatch stopWatch = new Stopwatch();
|
|
stopWatch.Start();
|
|
done = dbController.InsertCheck(updItem, clientIp);
|
|
stopWatch.Stop();
|
|
TimeSpan ts = stopWatch.Elapsed;
|
|
Log.Trace($"Effettuata operazione InsertCheck: {ts.TotalMilliseconds} ms");
|
|
|
|
return await Task.FromResult(done);
|
|
}
|
|
|
|
public async Task<bool> InsertManual(int idxDip, string clientIp)
|
|
{
|
|
bool done = false;
|
|
Stopwatch stopWatch = new Stopwatch();
|
|
stopWatch.Start();
|
|
done = dbController.InsertManual(idxDip, clientIp);
|
|
stopWatch.Stop();
|
|
TimeSpan ts = stopWatch.Elapsed;
|
|
Log.Trace($"Effettuata operazione InsertManual: {ts.TotalMilliseconds} ms");
|
|
|
|
return await Task.FromResult(done);
|
|
}
|
|
|
|
#endregion Public Methods
|
|
}
|
|
} |