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
}
}