using Microsoft.Data.SqlClient; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using MP.Data.DbModels; using MP.Data.DbModels.Energy; using NLog; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Threading.Tasks; namespace MP.Data.Controllers { public class MpStatsController : IDisposable { #region Public Constructors public MpStatsController(IConfiguration configuration) { _configuration = configuration; Log.Info("Avviata classe MpStatsController"); } #endregion Public Constructors #region Public Methods /// /// Elenco Azioni (decodifica) /// /// public List ActionsGetAll() { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { dbResult = dbCtx .DbSetAzioniUL .ToList(); } return dbResult; } /// /// Elenco FLTranslations (decodifica + UM) /// /// public List AnagFLTransGetAll() { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { dbResult = dbCtx .DbSetAnagFLTrans .ToList(); } return dbResult; } /// /// Elenco tabella Articoli da filtro /// /// /// /// public List ArticoliGetSearch(int numRecord, string searchVal = "") { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { dbResult = dbCtx .DbSetArticoli .Where(x => x.CodArticolo.Contains(searchVal) || x.DescArticolo.Contains(searchVal) || x.Disegno.Contains(searchVal) || string.IsNullOrEmpty(searchVal)) .OrderBy(x => x.CodArticolo) .Take(numRecord) .ToList(); } return dbResult; } /// /// Elenco tabella Articoli da filtro /// /// /// /// public List CommesseGetSearch(int numRecord, string searchVal = "") { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { dbResult = dbCtx .DbSetODL .Where(x => x.KeyRichiesta.Contains(searchVal) || string.IsNullOrEmpty(searchVal)) .OrderBy(x => x.KeyRichiesta) .Take(numRecord) .ToList(); } return dbResult; } /// /// Elenco da tabella Config /// /// public List ConfigGetAll() { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { dbResult = dbCtx .DbSetConfig .AsNoTracking() .OrderBy(x => x.Chiave) .ToList(); } return dbResult; } public void Dispose() { } /// /// Restituisce dataset FluxLog filtrato /// /// Macchina singola, se "" = tutte /// Data inizio selezione odl (inizio/fine) /// Data fine selezione odl (inizio/fine) /// Tipo Flusso, "" = tutti /// public List FluxLogRawData(string IdxMacchina, DateTime DtStart, DateTime DtEnd, string fluxType) { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { dbResult = dbCtx .DbSetFL .Where(x => (IdxMacchina == "*" || x.IdxMacchina == IdxMacchina) && (fluxType == "*" || x.FluxType == fluxType) && (x.dtEvento >= DtStart && x.dtEvento <= DtEnd)) .ToList(); } return dbResult; } /// /// Elenco di tipi flusso disponibili /// /// public List FluxTypeList() { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { dbResult = dbCtx .DbSetFL .Select(x => x.FluxType) .Distinct() .OrderBy(x => x) .ToList(); } return dbResult; } /// /// Elenco da tabella Macchine con dati Energy /// /// public List MacchineEnergy() { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { dbResult = dbCtx .DbSetMaccStat .ToList(); } return dbResult; } /// /// Elenco da tabella Macchine /// /// public List MacchineGetAll() { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { dbResult = dbCtx .DbSetMacchine .OrderBy(x => x.IdxMacchina) .ToList(); } return dbResult; } /// /// Elenco controllo stato Macchine Energy x check /// /// public async Task> MacchineEnergyCheckGetAllAsync() { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { dbResult = await dbCtx .DbSetMacchineCheck .OrderBy(x => x.IdxMacchina) .ToListAsync(); } return dbResult; } /// /// Annulla modifiche su una specifica entity (cancel update) /// /// /// public bool RollBackEntity(object item) { bool answ = false; using (var dbCtx = new MoonPro_STATSContext(_configuration)) { 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 tabella controlli da filtro /// /// /// /// public List StatControlliGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo) { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { var dataFrom = new SqlParameter("@dataFrom", DataStart); var dataTo = new SqlParameter("@dataTo", DataEnd); var idxMacchina = new SqlParameter("@IdxMacchina", IdxMacchina); var idxODL = new SqlParameter("@IdxODL", IdxODL); var keyRichiesta = new SqlParameter("@KeyRichiesta", KeyRichiesta); var codArticolo = new SqlParameter("@CodArticolo", CodArticolo); dbResult = dbCtx .DbSetControlli .FromSqlRaw("EXEC stp_UI_RC_GetByFilter @dataFrom,@dataTo,@IdxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo) .ToList(); } return dbResult; } /// /// Elenco tabella DDB da filtro /// /// /// /// /// /// /// /// /// /// public List StatDdbGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo, int FirstRecord, int NumRecord) { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { var dataFrom = new SqlParameter("@dataFrom", DataStart); var dataTo = new SqlParameter("@dataTo", DataEnd); var idxMacchina = new SqlParameter("@IdxMacchina", IdxMacchina); var idxODL = new SqlParameter("@IdxODL", IdxODL); var keyRichiesta = new SqlParameter("@KeyRichiesta", KeyRichiesta); var codArticolo = new SqlParameter("@CodArticolo", CodArticolo); var firstRecord = new SqlParameter("@FirstRecord", FirstRecord); var numRecord = new SqlParameter("@NumRecord", NumRecord); dbResult = dbCtx .DbSetDdbTurni .FromSqlRaw("EXEC stp_UI_DDBTurni_GetByFilter @dataFrom,@dataTo,@IdxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo,@FirstRecord,@NumRecord", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo, firstRecord, numRecord) .ToList(); } return dbResult; } /// /// Elenco tabella DDB da filtro /// /// /// /// /// /// /// /// public int StatDdbGetCount(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo) { int numResult = 0; using (var dbCtx = new MoonPro_STATSContext(_configuration)) { numResult = dbCtx .DbSetDdbTurni .Where(x => (x.IdxMacchina == IdxMacchina || IdxMacchina == "*") && (x.IdxOdl == IdxODL || IdxODL == -999) && (x.KeyRichiesta == KeyRichiesta || KeyRichiesta == "*") && (x.CodArticolo == CodArticolo || CodArticolo == "*") && (x.InizioPeriodo >= DataStart && x.InizioPeriodo <= DataEnd)) .Count(); } return numResult; } /// /// Restituisce dataset ODL Energy filtrato /// /// Macchina singola, se "" = tutte /// Data inizio selezione odl (inizio/fine) /// Data fine selezione odl (inizio/fine) /// IdxOdl, se 0 = tutti /// Key Richiesta, se "*" = tutti /// Cod Articolo, se "*" = tutti /// public List StatOdlEnergyGetFilt(string IdxMacchina, DateTime DtStart, DateTime DtEnd, int IdxODL, string KeyRichiesta, string CodArticolo) { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { var dataFrom = new SqlParameter("@dataFrom", DtStart); var dataTo = new SqlParameter("@dataTo", DtEnd); var idxMacchina = new SqlParameter("@idxMacchina", IdxMacchina); var idxODL = new SqlParameter("@IdxODL", IdxODL); var keyRichiesta = new SqlParameter("@KeyRichiesta", KeyRichiesta); var codArticolo = new SqlParameter("@CodArticolo", CodArticolo); dbResult = dbCtx .DbSetOdlEnergy .FromSqlRaw("EXEC stp_UI_ODL_Energy_GetByFilter @dataFrom,@dataTo,@IdxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo) .ToList(); } return dbResult; } /// /// Elenco tabella ODL da filtro /// /// /// /// public List StatOdlGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo) { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { var dataFrom = new SqlParameter("@dataFrom", DataStart); var dataTo = new SqlParameter("@dataTo", DataEnd); var idxMacchina = new SqlParameter("@IdxMacchina", IdxMacchina); var idxODL = new SqlParameter("@IdxODL", IdxODL); var keyRichiesta = new SqlParameter("@KeyRichiesta", KeyRichiesta); var codArticolo = new SqlParameter("@CodArticolo", CodArticolo); dbResult = dbCtx .DbSetODL .FromSqlRaw("EXEC stp_UI_Odl_GetByFilter @dataFrom,@dataTo,@IdxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo) .ToList(); } return dbResult; } /// /// Elenco tabella scarti da filtro /// /// /// /// /// /// public List StatScartiGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo) { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { var dataFrom = new SqlParameter("@dataFrom", DataStart); var dataTo = new SqlParameter("@dataTo", DataEnd); var idxMacchina = new SqlParameter("@IdxMacchina", IdxMacchina); var idxODL = new SqlParameter("@IdxODL", IdxODL); var keyRichiesta = new SqlParameter("@KeyRichiesta", KeyRichiesta); var codArticolo = new SqlParameter("@CodArticolo", CodArticolo); dbResult = dbCtx .DbSetScarti .FromSqlRaw("EXEC stp_UI_RS_GetByFilter @dataFrom,@dataTo,@IdxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo) .ToList(); } return dbResult; } /// /// Elenco tabella TurniOee da filtro /// /// /// /// /// /// public List StatTurniOeeGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo) { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { var dataFrom = new SqlParameter("@dataFrom", DataStart); var dataTo = new SqlParameter("@dataTo", DataEnd); var idxMacchina = new SqlParameter("@IdxMacchina", IdxMacchina); var idxODL = new SqlParameter("@IdxODL", IdxODL); var keyRichiesta = new SqlParameter("@KeyRichiesta", KeyRichiesta); var codArticolo = new SqlParameter("@CodArticolo", CodArticolo); dbResult = dbCtx .DbSetTurniOee .FromSqlRaw("EXEC stp_UI_TurniOee_GetByFilter @dataFrom,@dataTo,@IdxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo) .ToList(); } return dbResult; } /// /// Elenco tabella UserLog da filtro /// /// /// /// public List StatUserLogGetAll(DateTime DataStart, DateTime DataEnd, string IdxMacchina, int IdxODL, string KeyRichiesta, string CodArticolo) { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { var dataFrom = new SqlParameter("@dataFrom", DataStart); var dataTo = new SqlParameter("@dataTo", DataEnd); var idxMacchina = new SqlParameter("@IdxMacchina", IdxMacchina); var idxODL = new SqlParameter("@IdxODL", IdxODL); var keyRichiesta = new SqlParameter("@KeyRichiesta", KeyRichiesta); var codArticolo = new SqlParameter("@CodArticolo", CodArticolo); dbResult = dbCtx .DbSetUserLog .FromSqlRaw("EXEC stp_UI_UL_GetByFilter @dataFrom,@dataTo,@IdxMacchina,@IdxODL,@KeyRichiesta,@CodArticolo", dataFrom, dataTo, idxMacchina, idxODL, keyRichiesta, codArticolo) .ToList(); } return dbResult; } /// /// Elenco Vocabolario (completo) /// /// public List VocabolarioGetAll() { List dbResult = new List(); using (var dbCtx = new MoonPro_STATSContext(_configuration)) { dbResult = dbCtx .DbSetVocabolario .AsNoTracking() .OrderBy(x => x.Lemma) .ToList(); } return dbResult; } #endregion Public Methods #region Private Fields private static IConfiguration _configuration; private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); #endregion Private Fields } }