using Microsoft.Extensions.Configuration; using NLog; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MP.AppAuth.Controllers { public class AppAuthController : IDisposable { #region Private Fields private static IConfiguration _configuration; private static AppAuthContext dbCtx; private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); #endregion Private Fields #region Public Constructors public AppAuthController(IConfiguration configuration) { _configuration = configuration; dbCtx = new AppAuthContext(configuration); Log.Info("Avviata classe AppAuthController"); } #endregion Public Constructors #region Public Methods /// /// Elenco Record x Gruppi /// /// public List AnagGruppiFilt(string codTipo) { List dbResult = new List(); using (AppAuthContext localDbCtx = new AppAuthContext(_configuration)) { dbResult = localDbCtx .DbSetAnagraficaGruppi .Where(x => x.TipoGruppo == codTipo) .ToList(); } return dbResult; } /// /// Elenco Record x Gruppi /// /// public List AnagGruppiGetAll() { List dbResult = new List(); using (AppAuthContext localDbCtx = new AppAuthContext(_configuration)) { dbResult = localDbCtx .DbSetAnagraficaGruppi .ToList(); } return dbResult; } public List AnagOpGetAll(string searchVal) { List dbResult = new List(); using (AppAuthContext localDbCtx = new AppAuthContext(_configuration)) { if (!string.IsNullOrEmpty(searchVal)) { dbResult = localDbCtx .DbSetAnagOpr .Where(x => x.Cognome.Contains(searchVal) || x.Nome.Contains(searchVal)) .ToList(); } else { dbResult = localDbCtx .DbSetAnagOpr .ToList(); } } // ritorno return dbResult; } public List AnagOpByGruppoGetFilt(string codGruppo, string searchVal) { List dbResult = new List(); using (AppAuthContext localDbCtx = new AppAuthContext(_configuration)) { if (!string.IsNullOrEmpty(searchVal)) { dbResult = localDbCtx .DbSetGruppi2Oper .Where(x => x.CodGruppo == codGruppo || string.IsNullOrEmpty(codGruppo)) .Join( localDbCtx.DbSetAnagOpr.Where(x => x.Cognome.Contains(searchVal) || x.Nome.Contains(searchVal)), gruppo => gruppo.MatrOpr, operatore => operatore.MatrOpr, (gruppo, operatore) => operatore ) .ToList(); } else { dbResult = localDbCtx .DbSetGruppi2Oper .Where(x => x.CodGruppo == codGruppo || string.IsNullOrEmpty(codGruppo)) .Join( localDbCtx.DbSetAnagOpr, gruppo => gruppo.MatrOpr, operatore => operatore.MatrOpr, (gruppo, operatore) => operatore ) .ToList(); } } // ritorno return dbResult; } public void Dispose() { // Clear database context dbCtx.Dispose(); } public void ResetController() { dbCtx = new AppAuthContext(_configuration); Log.Info("Effettuato reset AppAuthController"); } /// /// Annulla modifiche su una specifica entity (cancel update) /// /// /// public bool RollBackEntity(object item) { bool answ = false; try { if (dbCtx.Entry(item).State == Microsoft.EntityFrameworkCore.EntityState.Deleted || dbCtx.Entry(item).State == Microsoft.EntityFrameworkCore.EntityState.Modified) { dbCtx.Entry(item).Reload(); } } catch (Exception exc) { Log.Error($"Eccezione in rollBackEntity{Environment.NewLine}{exc}"); } return answ; } /// /// Elenco Record x gestione Update /// /// public List UpdManGetAll() { List dbResult = new List(); using (AppAuthContext localDbCtx = new AppAuthContext(_configuration)) { dbResult = localDbCtx .DbSetUpdMan .OrderBy(x => x.Ordinal) .ToList(); } return dbResult; } /// /// Elenco Record x gestione Update /// /// public List VocabolarioGetAll() { List dbResult = new List(); using (AppAuthContext localDbCtx = new AppAuthContext(_configuration)) { dbResult = localDbCtx .DbSetVocabolario .ToList(); } return dbResult; } #endregion Public Methods } }