Files
StockMan/StockMan.Data/Controllers/StoManController.cs
T
2023-02-15 17:04:59 +01:00

499 lines
17 KiB
C#

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
/// <summary>
/// Lista Permessi
/// </summary>
/// <returns></returns>
public List<PermessiModel> PermessiGetAll()
{
List<PermessiModel> dbResult = new List<PermessiModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
dbResult = localDbCtx
.DbSetPermessi
.OrderBy(x => x.GRUPPO)
.ToList();
}
return dbResult;
}
/// <summary>
/// Lista Contatori
/// </summary>
/// <returns></returns>
public List<CountersListModel> CountersGetAll()
{
List<CountersListModel> dbResult = new List<CountersListModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
dbResult = localDbCtx
.DbSetCountersList
.OrderBy(x => x.Id)
.ToList();
}
return dbResult;
}
public void Dispose()
{
GC.Collect();
}
/// <summary>
/// Lista Famiglie Articoli
/// </summary>
/// <returns></returns>
public List<ItemFamilyModel> ItemFamilyGetAll()
{
List<ItemFamilyModel> dbResult = new List<ItemFamilyModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
dbResult = localDbCtx
.DbSetItemFamily
.OrderBy(x => x.Descr)
.ToList();
}
return dbResult;
}
/// <summary>
/// Lista Famiglie Articoli da ricerca
/// </summary>
/// <returns></returns>
public List<ItemFamilyModel> ItemFamilyGetSearch(string searchVal)
{
List<ItemFamilyModel> dbResult = new List<ItemFamilyModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
dbResult = localDbCtx
.DbSetItemFamily
.Where(x => x.Descr.Contains(searchVal))
.OrderBy(x => x.Descr)
.ToList();
}
return dbResult;
}
///// <summary>
///// Modifica Famiglie Articoli
///// </summary>
///// <returns></returns>
//public List<ItemFamilyModel> ItemFamilyMod()
//{
// List<ItemFamilyModel> dbResult = new List<ItemFamilyModel>();
// using (StockManContext localDbCtx = new StockManContext(_configuration))
// {
// dbResult = localDbCtx
// .DbSetItemFamily
// .OrderBy(x => x.Descr)
// .ToList();
// }
// return dbResult;
//}
/// <summary>
/// Modifica famiglia articoli
/// </summary>
/// <returns></returns>
public async Task<bool> ItemFamilyMod(ItemFamilyModel editRec)
{
bool fatto = false;
List<ItemFamilyModel> dbResult = new List<ItemFamilyModel>();
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;
}
/// <summary>
/// Modifica item,
/// </summary>
/// <returns></returns>
public async Task<bool> ItemMod(ItemModel editRec)
{
bool fatto = false;
List<ItemModel> dbResult = new List<ItemModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
try
{
var currRec = localDbCtx
.DbSetItem
.Where(x => x.Id == editRec.Id)
.FirstOrDefault();
if (currRec != null)
{
currRec = editRec;
}
else
{
localDbCtx
.DbSetItem
.Add(editRec);
}
await localDbCtx.SaveChangesAsync();
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante ItemMod{Environment.NewLine}{exc}");
}
}
return fatto;
}
/// <summary>
/// Aggiunta famiglia di item
/// </summary>
/// <returns></returns>
public async Task<bool> ItemFamilyAdd(ItemFamilyModel newRec)
{
bool fatto = false;
List<ItemFamilyModel> dbResult = new List<ItemFamilyModel>();
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;
}
/// <summary>
/// aggiunta item
/// </summary>
/// <returns></returns>
public async Task<bool> ItemAdd(ItemModel newRec)
{
bool fatto = false;
List<ItemModel> dbResult = new List<ItemModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
try
{
var currRec = localDbCtx
.DbSetItem
.Where(x => x.Id == newRec.Id)
.FirstOrDefault();
if (currRec != null)
{
fatto = false;
}
else
{
localDbCtx
.DbSetItem
.Add(newRec);
}
await localDbCtx.SaveChangesAsync();
fatto = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione durante ItemAdd{Environment.NewLine}{exc}");
}
}
return fatto;
}
/// <summary>
/// Lista Items
/// </summary>
/// <returns></returns>
public List<ItemModel> ItemsGetAll()
{
List<ItemModel> dbResult = new List<ItemModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
dbResult = localDbCtx
.DbSetItem
.OrderBy(x => x.Descr)
.ToList();
}
return dbResult;
}
/// <summary>
/// Lista Items
/// </summary>
/// <returns></returns>
public async Task<bool> 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;
}
///// <summary>
///// Lista Items da ricerca
///// </summary>
///// <returns></returns>
//public List<ItemModel> ItemsGetSearch(string searchVal, string famID)
//{
// List<ItemModel> dbResult = new List<ItemModel>();
// 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;
//}
/// <summary>
/// Lista Items da ricerca
/// </summary>
/// <returns></returns>
public List<ItemModel> ItemsGetSearch(string searchVal, string itemFamId)
{
List<ItemModel> dbResult = new List<ItemModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
if (!string.IsNullOrEmpty(searchVal) && itemFamId == "*")
{
var risultato = localDbCtx
.DbSetItem
.Where(x => ((x.Id.ToString()==searchVal)) || (x.CodInt.Contains(searchVal)) || (x.CodExt.Contains(searchVal)) || (x.Descr.Contains(searchVal) || (x.CurrValue.ToString().Contains(searchVal))))
.ToList();
if (risultato != null)
{
dbResult = risultato;
}
}
else if(itemFamId != "*" && string.IsNullOrEmpty(searchVal))
{
var risultato = localDbCtx
.DbSetItem
.Where(x => ((x.ItemFamilyId == itemFamId)))
.ToList();
if (risultato != null)
{
dbResult = risultato;
}
}
else if(itemFamId != "*" && !string.IsNullOrEmpty(searchVal))
{
var risultato = localDbCtx
.DbSetItem
.Where(x => ((x.ItemFamilyId == itemFamId) && ((x.CodInt.Contains(searchVal)) || (x.CodExt.Contains(searchVal)) || (x.Descr.Contains(searchVal) || (x.CurrValue.ToString().Contains(searchVal))))))
.ToList();
if (risultato != null)
{
dbResult = risultato;
}
}
else
{
dbResult = localDbCtx
.DbSetItem
.OrderBy(x => x.Id)
.ToList();
}
}
return dbResult;
}
/// <summary>
/// Lista Item Stock (ALL!)
/// </summary>
/// <returns></returns>
public List<ItemStockModel> ItemsStockGetAll()
{
List<ItemStockModel> dbResult = new List<ItemStockModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
dbResult = localDbCtx
.DbSetItemStock
.OrderBy(x => x.Id)
.ToList();
}
return dbResult;
}
/// <summary>
/// Lista Locazioni
/// </summary>
/// <returns></returns>
public List<LocationModel> LocationGetAll()
{
List<LocationModel> dbResult = new List<LocationModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
dbResult = localDbCtx
.DbSetLocation
.OrderBy(x => x.Descr)
.ToList();
}
return dbResult;
}
/// <summary>
/// Lista Tipi Locazioni
/// </summary>
/// <returns></returns>
public List<LocTypeModel> LocTypeGetAll()
{
List<LocTypeModel> dbResult = new List<LocTypeModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
dbResult = localDbCtx
.DbSetLocType
.OrderBy(x => x.Descr)
.ToList();
}
return dbResult;
}
/// <summary>
/// Lista Tipi Movimenti
/// </summary>
/// <returns></returns>
public List<MovTypeModel> MovTypeGetAll()
{
List<MovTypeModel> dbResult = new List<MovTypeModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
dbResult = localDbCtx
.DbSetMovType
.OrderBy(x => x.Descr)
.ToList();
}
return dbResult;
}
/// <summary>
/// Lista Operatori
/// </summary>
/// <returns></returns>
public List<OperatorModel> OperatorsGetAll()
{
List<OperatorModel> dbResult = new List<OperatorModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
dbResult = localDbCtx
.DbSetOperator
.OrderBy(x => x.LastName)
.ThenBy(x => x.FirstName)
.ToList();
}
return dbResult;
}
/// <summary>
/// Lista Flux x item
/// </summary>
/// <returns></returns>
public List<ItemFluxModel> ItemFluxGetById(int id)
{
List<ItemFluxModel> dbResult = new List<ItemFluxModel>();
using (StockManContext localDbCtx = new StockManContext(_configuration))
{
dbResult = localDbCtx
.DbSetItemFlux
.Where(x => x.ItemId == id)
.OrderBy(x => x.Id)
.ToList();
}
return dbResult;
}
#endregion Public Methods
#region Private Fields
private static IConfiguration _configuration = null!;
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
}
}