171 lines
5.0 KiB
C#
171 lines
5.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using EgtBEAMWALL.DataLayer.DatabaseModels;
|
|
|
|
namespace EgtBEAMWALL.DataLayer.Controllers
|
|
{
|
|
public class LogSupportController : IDisposable
|
|
{
|
|
#region Private Fields
|
|
|
|
private DatabaseContext dbCtx;
|
|
|
|
#endregion Private Fields
|
|
|
|
#region Public Constructors
|
|
|
|
public LogSupportController()
|
|
{
|
|
// Initialize database context
|
|
dbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING);
|
|
}
|
|
|
|
#endregion Public Constructors
|
|
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Create support LOG record
|
|
/// </summary>
|
|
/// <param name="dtCreated"></param>
|
|
/// <param name="fileName"></param>
|
|
/// <param name="dtExported"></param>
|
|
/// <param name="sn"></param>
|
|
/// <param name="description"></param>
|
|
/// <param name="eventType"></param>
|
|
/// <param name="message"></param>
|
|
/// <param name="value"></param>
|
|
/// <returns></returns>
|
|
public bool Create(DateTime dtCreated, Core.LogSupportLevel level, Core.LogSupportTarget target, string message)
|
|
{
|
|
bool fatto = false;
|
|
try
|
|
{
|
|
try
|
|
{
|
|
LogSupportModel newItem = new LogSupportModel() { DtEvent = dtCreated, Level = level, Target = target, Message = message };
|
|
// Add to database
|
|
dbCtx.LogSupportList.Add(newItem);
|
|
// Commit changes
|
|
dbCtx.SaveChanges();
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
Console.WriteLine($"EXCEPTION on Create LogSupport: {exc}");
|
|
}
|
|
}
|
|
catch
|
|
{ }
|
|
return fatto;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Delete by key
|
|
/// </summary>
|
|
/// <param name="LogDbId"></param>
|
|
/// <returns></returns>
|
|
public bool DeleteByKey(int LogDbId)
|
|
{
|
|
bool done = false;
|
|
var items2del = dbCtx
|
|
.LogSupportList
|
|
.Where(x => x.LogDbId == LogDbId);
|
|
try
|
|
{
|
|
// Add to database
|
|
dbCtx.LogSupportList.RemoveRange(items2del);
|
|
// Commit changes
|
|
dbCtx.SaveChanges();
|
|
done = true;
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
Console.WriteLine($"EXCEPTION on DeleteByKey: {exc}");
|
|
}
|
|
return done;
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
// Clear database context
|
|
dbCtx.Dispose();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Get record by LogDbId
|
|
/// </summary>
|
|
/// <param name="LogDbId"></param>
|
|
/// <returns></returns>
|
|
public LogSupportModel FindByDbId(int LogDbId)
|
|
{
|
|
return dbCtx
|
|
.LogSupportList
|
|
.Where(x => x.LogDbId == LogDbId)
|
|
.SingleOrDefault();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Get paginated data from DB (ASC ordered)
|
|
/// </summary>
|
|
/// <param name="dtStart"></param>
|
|
/// <param name="dtEnd"></param>
|
|
/// <returns></returns>
|
|
public List<LogSupportModel> GetPaginatedAsc(DateTime dtStart, DateTime dtEnd)
|
|
{
|
|
// retrieve
|
|
return dbCtx
|
|
.LogSupportList
|
|
.Where(x => x.DtEvent >= dtStart && x.DtEvent <= dtEnd)
|
|
.OrderBy(x => x.DtEvent)
|
|
.ToList();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Get paginated data from DB (DESC ordered)
|
|
/// </summary>
|
|
/// <param name="dtStart"></param>
|
|
/// <param name="dtEnd"></param>
|
|
/// <returns></returns>
|
|
public List<LogSupportModel> GetPaginatedDesc(DateTime dtStart, DateTime dtEnd)
|
|
{
|
|
// retrieve
|
|
return dbCtx
|
|
.LogSupportList
|
|
.Where(x => x.DtEvent >= dtStart && x.DtEvent <= dtEnd)
|
|
.OrderByDescending(x => x.DtEvent)
|
|
.ToList();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Update single LogMachineModel
|
|
/// </summary>
|
|
/// <param name="updItem"></param>
|
|
/// <returns></returns>
|
|
public bool Update(LogSupportModel updItem)
|
|
{
|
|
bool done = false;
|
|
var item2update = dbCtx
|
|
.LogSupportList
|
|
.Where(x => x.LogDbId == updItem.LogDbId)
|
|
.SingleOrDefault();
|
|
try
|
|
{
|
|
// update, vers 1...
|
|
dbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
|
|
|
|
// Commit changes
|
|
dbCtx.SaveChanges();
|
|
done = true;
|
|
}
|
|
catch (Exception exc)
|
|
{
|
|
Console.WriteLine($"EXCEPTION on Update: {exc}");
|
|
}
|
|
return done;
|
|
}
|
|
|
|
#endregion Public Methods
|
|
}
|
|
} |