using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using NLog; using StockMan.Data.DbModels; namespace StockMan.Data.Controllers { public class StoManController : IDisposable { #region Public Constructors public StoManController(IConfiguration configuration) { _configuration = configuration; Log.Info("Avviata classe StoManController"); } #endregion Public Constructors #region Public Methods /// /// Lista Permessi /// /// public List PermessiGetAll() { List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { dbResult = localDbCtx .DbSetPermessi .OrderBy(x => x.GRUPPO) .ToList(); } return dbResult; } /// /// Lista Contatori /// /// public List CountersGetAll() { List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { dbResult = localDbCtx .DbSetCountersList .OrderBy(x => x.Id) .ToList(); } return dbResult; } public void Dispose() { GC.Collect(); } /// /// Lista Famiglie Articoli /// /// public List ItemFamilyGetAll() { List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { dbResult = localDbCtx .DbSetItemFamily .OrderBy(x => x.Descr) .ToList(); } return dbResult; } /// /// Lista Famiglie Articoli da ricerca /// /// public List ItemFamilyGetSearch(string searchVal) { List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { dbResult = localDbCtx .DbSetItemFamily .Where(x => x.Descr.Contains(searchVal)) .OrderBy(x => x.Descr) .ToList(); } return dbResult; } /// /// Modifica Famiglie Articoli /// /// public List ItemFamilyMod() { List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { dbResult = localDbCtx .DbSetItemFamily .OrderBy(x => x.Descr) .ToList(); } return dbResult; } /// /// Lista Item Flux (ALL!) /// /// public async Task ItemFamilyMod(ItemFamilyModel editRec) { bool fatto = false; List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { try { var currRec = localDbCtx .DbSetItemFamily .Where(x => x.Id == editRec.Id) .FirstOrDefault(); if (currRec != null) { currRec.Descr = editRec.Descr; } else { localDbCtx .DbSetItemFamily .Add(editRec); } await localDbCtx.SaveChangesAsync(); fatto = true; } catch (Exception exc) { Log.Error($"Eccezione durante ItemFamilyMod{Environment.NewLine}{exc}"); } } return fatto; } /// /// Lista Item Flux (ALL!) /// /// public async Task ItemFamilyAdd(ItemFamilyModel newRec) { bool fatto = false; List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { try { var currRec = localDbCtx .DbSetItemFamily .Where(x => x.Id == newRec.Id) .FirstOrDefault(); if (currRec != null) { fatto = false; } else { localDbCtx .DbSetItemFamily .Add(newRec); } await localDbCtx.SaveChangesAsync(); fatto = true; } catch (Exception exc) { Log.Error($"Eccezione durante ItemFamilyAdd{Environment.NewLine}{exc}"); } } return fatto; } /// /// Lista Items /// /// public List ItemsGetAll() { List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { dbResult = localDbCtx .DbSetItem .OrderBy(x => x.Descr) .ToList(); } return dbResult; } /// /// Lista Items /// /// public async Task ItemFamilyDeleteByID(ItemFamilyModel currRec) { bool fatto = false; using (StockManContext localDbCtx = new StockManContext(_configuration)) { try { var dbResult = localDbCtx .DbSetItemFamily .Where(x => x.Id == currRec.Id) .FirstOrDefault(); if (dbResult != null) { localDbCtx .DbSetItemFamily .Remove(dbResult); await localDbCtx.SaveChangesAsync(); fatto = true; } } catch (Exception exc) { Log.Error($"Eccezione durante ItemFamilyDeleteByID{Environment.NewLine}{exc}"); } } return fatto; } ///// ///// Lista Items da ricerca ///// ///// //public List ItemsGetSearch(string searchVal, string famID) //{ // List dbResult = new List(); // using (StockManContext localDbCtx = new StockManContext(_configuration)) // { // dbResult = localDbCtx // .DbSetItem // .Where(x => (x.ItemFamilyId == famID || string.IsNullOrEmpty(famID)) && (x.CodExt.Contains(searchVal) || x.Descr.Contains(searchVal) || x.DescrExt.Contains(searchVal) || string.IsNullOrEmpty(searchVal))) // .OrderBy(x => x.Descr) // .ToList(); // } // return dbResult; //} /// /// Lista Items da ricerca /// /// public ItemModel ItemsGetSearch(int id) { ItemModel dbResult = new ItemModel(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { var risultato = localDbCtx .DbSetItem .Where(x => (x.Id == id)) .FirstOrDefault(); if(risultato != null) { dbResult = risultato; } } return dbResult; } /// /// Lista Item Stock (ALL!) /// /// public List ItemsStockGetAll() { List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { dbResult = localDbCtx .DbSetItemStock .OrderBy(x => x.Id) .ToList(); } return dbResult; } /// /// Lista Locazioni /// /// public List LocationGetAll() { List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { dbResult = localDbCtx .DbSetLocation .OrderBy(x => x.Descr) .ToList(); } return dbResult; } /// /// Lista Tipi Locazioni /// /// public List LocTypeGetAll() { List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { dbResult = localDbCtx .DbSetLocType .OrderBy(x => x.Descr) .ToList(); } return dbResult; } /// /// Lista Tipi Movimenti /// /// public List MovTypeGetAll() { List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { dbResult = localDbCtx .DbSetMovType .OrderBy(x => x.Descr) .ToList(); } return dbResult; } /// /// Lista Operatori /// /// public List OperatorsGetAll() { List dbResult = new List(); using (StockManContext localDbCtx = new StockManContext(_configuration)) { dbResult = localDbCtx .DbSetOperator .OrderBy(x => x.LastName) .ThenBy(x => x.FirstName) .ToList(); } return dbResult; } #endregion Public Methods #region Private Fields private static IConfiguration _configuration = null!; private static NLog.Logger Log = LogManager.GetCurrentClassLogger(); #endregion Private Fields } }