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 /// /// Create support LOG record /// /// /// /// /// /// /// /// /// /// 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(); ResetController(); } catch (Exception exc) { Console.WriteLine($"EXCEPTION on Create LogSupport: {exc}"); } } catch { } return fatto; } /// /// Delete by key /// /// /// 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(); ResetController(); done = true; } catch (Exception exc) { Console.WriteLine($"EXCEPTION on DeleteByKey: {exc}"); } return done; } public void Dispose() { // Clear database context dbCtx.Dispose(); } /// /// Get record by LogDbId /// /// /// public LogSupportModel FindByDbId(int LogDbId) { return dbCtx .LogSupportList .Where(x => x.LogDbId == LogDbId) .SingleOrDefault(); } /// /// Get paginated data from DB (ASC ordered) /// /// /// /// public List GetPaginatedAsc(DateTime dtStart, DateTime dtEnd) { // retrieve return dbCtx .LogSupportList .Where(x => x.DtEvent >= dtStart && x.DtEvent <= dtEnd) .OrderBy(x => x.DtEvent) .ToList(); } /// /// Get paginated data from DB (DESC ordered) /// /// /// /// public List GetPaginatedDesc(DateTime dtStart, DateTime dtEnd) { // retrieve return dbCtx .LogSupportList .Where(x => x.DtEvent >= dtStart && x.DtEvent <= dtEnd) .OrderByDescending(x => x.DtEvent) .ToList(); } /// /// Reinizializzaizone del controller /// public void ResetController() { // Re-Initialize database context dbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING); } /// /// Update single LogMachineModel /// /// /// 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(); ResetController(); done = true; } catch (Exception exc) { Console.WriteLine($"EXCEPTION on Update: {exc}"); } return done; } #endregion Public Methods } }