using MagMan.Data.Admin.DbModels; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using NLog; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace MagMan.Data.Admin.Controllers { public class MultiTenantController : IDisposable { #region Public Constructors public MultiTenantController(IConfiguration configuration) { _configuration = configuration; } #endregion Public Constructors #region Public Methods /// /// Elimina item Customer /// /// /// public bool CustomerDelete(CustomerModel updItem) { bool done = false; using (MultiTenantContext dbCtx = new MultiTenantContext()) { try { var currData = dbCtx .DbSetCustomers .Where(x => x.CustomerID == updItem.CustomerID) .FirstOrDefault(); if (currData != null) { dbCtx .DbSetCustomers .Remove(currData); dbCtx.SaveChanges(); done = true; } } catch (Exception exc) { Log.Error($"Eccezione in CustomerDelete{Environment.NewLine}{exc}"); } } return done; } /// /// Elenco clienti /// /// public List CustomerGetAll() { List dbResult = new List(); using (MultiTenantContext localDbCtx = new MultiTenantContext()) { dbResult = localDbCtx .DbSetCustomers .OrderBy(x => x.Name) .ToList(); } return dbResult; } /// /// Aggiunge/Modifica un item Customer /// /// /// public bool CustomerUpdate(CustomerModel updItem) { bool done = false; using (MultiTenantContext dbCtx = new MultiTenantContext()) { try { var currData = dbCtx .DbSetCustomers .Where(x => x.CustomerID == updItem.CustomerID) .FirstOrDefault(); if (currData != null) { currData.Name = updItem.Name; currData.Note = updItem.Note; currData.IsActive = updItem.IsActive; currData.DtActivation = updItem.DtActivation; dbCtx.Entry(currData).State = EntityState.Modified; } else { dbCtx .DbSetCustomers .Add(updItem); } dbCtx.SaveChanges(); done = true; } catch (Exception exc) { Log.Error($"Eccezione in CustomerUpdate{Environment.NewLine}{exc}"); } } return done; } public void Dispose() { // Clear database context //Log.Info("Dispose di GWMSController"); } /// /// Elimina item Machine /// /// /// public bool MachineDelete(MachineModel updItem) { bool done = false; using (MultiTenantContext dbCtx = new MultiTenantContext()) { try { var currData = dbCtx .DbSetMachines .Where(x => x.MachineID == updItem.MachineID) .FirstOrDefault(); if (currData != null) { dbCtx .DbSetMachines .Remove(currData); dbCtx.SaveChanges(); done = true; } } catch (Exception exc) { Log.Error($"Eccezione in MachineDelete{Environment.NewLine}{exc}"); } } return done; } /// /// Elenco Machine dato Customer /// /// 0 = tutti /// public List MachineGetFilt(int CustomerId) { List dbResult = new List(); using (MultiTenantContext localDbCtx = new MultiTenantContext()) { dbResult = localDbCtx .DbSetMachines .Where(x => CustomerId == 0 || x.CustomerID == CustomerId) .OrderBy(x => x.Name) .ToList(); } return dbResult; } /// /// Aggiunge/Modifica un item Machine /// /// /// public bool MachineUpdate(MachineModel updItem) { bool done = false; using (MultiTenantContext dbCtx = new MultiTenantContext()) { try { var currData = dbCtx .DbSetMachines .Where(x => x.MachineID == updItem.MachineID) .FirstOrDefault(); if (currData != null) { currData.Name = updItem.Name; currData.Note = updItem.Note; currData.CustomerID = updItem.CustomerID; currData.IsActive = updItem.IsActive; currData.DtActivation = updItem.DtActivation; dbCtx.Entry(currData).State = EntityState.Modified; } else { dbCtx .DbSetMachines .Add(updItem); } dbCtx.SaveChanges(); done = true; } catch (Exception exc) { Log.Error($"Eccezione in MachineUpdate{Environment.NewLine}{exc}"); } } return done; } #endregion Public Methods #region Private Fields private static IConfiguration _configuration = null!; private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); #endregion Private Fields } }