Fix procedura di LOG

- aggiunta file NLog.config
- aggiorna gestione scrittura dir
- aggiunto log caso x caso su file
This commit is contained in:
Samuele Locatelli
2022-06-27 15:51:34 +02:00
parent 07dbd89849
commit 0945aaf9d0
13 changed files with 526 additions and 337 deletions
@@ -106,7 +106,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Create: {exc}");
string errMessage = $"EXCEPTION on BTLPart.Create: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
return partData;
}
@@ -150,7 +152,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on CreateBaseObj: {exc}");
string errMessage = $"EXCEPTION on BTLPart.CreateBaseObj: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
return partData;
@@ -180,7 +184,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Delete: {exc}");
string errMessage = $"EXCEPTION on BTLPart.Delete: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -209,7 +215,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on DeleteByProject: {exc}");
string errMessage = $"EXCEPTION on BTLPart.DeleteByProject: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -385,12 +393,23 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Update: {exc}");
string errMessage = $"EXCEPTION on BTLPart.Update: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
}
#endregion Public Methods
#region Private Fields
/// <summary>
/// Istanza logger
/// </summary>
private NLog.Logger Log;
#endregion Private Fields
}
}
@@ -1,20 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using EgtBEAMWALL.DataLayer.DatabaseModels;
namespace EgtBEAMWALL.DataLayer.Controllers
{
public class DbController : IDisposable
{
#region Private Fields
private AdminContext adbCtx;
#endregion Private Fields
#region Public Fields
/// <summary>
@@ -47,7 +38,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
{
bool answ = false;
string domain = isNetwork ? "%" : "localhost";
// ricerca utente...
// ricerca utente...
var numUser = adbCtx
.UserList
.Where(x => x.User == username)
@@ -99,12 +90,25 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on ResetDb: {exc}");
string errMessage = $"EXCEPTION on DbController.ResetDb: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
return answ;
}
#endregion Public Methods
#region Private Fields
private AdminContext adbCtx;
/// <summary>
/// Istanza logger
/// </summary>
private NLog.Logger Log;
#endregion Private Fields
}
}
@@ -80,7 +80,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Create LogMachine: {exc}");
string errMessage = $"EXCEPTION on LogMachine.Create: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
catch
@@ -122,7 +124,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on DeleteByKey: {exc}");
string errMessage = $"EXCEPTION on LogMachine.DeleteByKey: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -211,12 +215,23 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Update: {exc}");
string errMessage = $"EXCEPTION on LogMachine.Update: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
}
#endregion Public Methods
#region Private Fields
/// <summary>
/// Istanza logger
/// </summary>
private NLog.Logger Log;
#endregion Private Fields
}
}
@@ -46,7 +46,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Create LogSupport: {exc}");
string errMessage = $"EXCEPTION on LogSupport.Create: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
catch
@@ -78,7 +80,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on DeleteByKey: {exc}");
string errMessage = $"EXCEPTION on LogSupport.DeleteByKey: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -167,12 +171,23 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Update: {exc}");
string errMessage = $"EXCEPTION on LogSupport.Update: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
}
#endregion Public Methods
#region Private Fields
/// <summary>
/// Istanza logger
/// </summary>
private NLog.Logger Log;
#endregion Private Fields
}
}
@@ -55,11 +55,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
return answ;
}
/// <summary>
/// Add MachGroup as rebuilt from NeedRedo (on top of order priority)
/// <param name="ProdId">Id del Prod</param>
/// <param name="newMachGroup">Nuovo MachGroup da associare</param>
/// <returns></returns>
/// <summary> Add MachGroup as rebuilt from NeedRedo (on top of order priority) <param
/// name="ProdId">Id del Prod</param> <param name="newMachGroup">Nuovo MachGroup da
/// associare</param> <returns></returns>
public ProdModel AddMachGroupRedo(int ProdId, Core.MyMachGroupM newMachGroup)
{
// Recupero il PROD
@@ -126,7 +124,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateMachGroup: {exc}");
string errMessage = $"EXCEPTION on MachGroup.UpdateMachGroup: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return currData;
@@ -153,7 +153,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Create: {exc}");
string errMessage = $"EXCEPTION on MachGroup.Create: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return newMachGroup;
@@ -196,7 +198,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Delete: ProdId: {ProdId} | MachGroupId: {MachGroupId}{Environment.NewLine}{exc}");
string errMessage = $"EXCEPTION on MachGroup.Delete: ProdId: {ProdId} | MachGroupId: {MachGroupId}{Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
// se fatto aggiorno info sullo status
@@ -266,7 +270,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on GetByProdAsc: {exc}");
string errMessage = $"EXCEPTION on MachGroup.GetByProdAsc: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
answ = localDbCtx
.MachGroupList
@@ -304,7 +310,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on GetByProdDesc: {exc}");
string errMessage = $"EXCEPTION on MachGroup.GetByProdDesc: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
answ = localDbCtx
.MachGroupList
@@ -360,7 +368,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateOrder: {exc}");
string errMessage = $"EXCEPTION on MachGroup.UpdateOrder: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
@@ -400,7 +410,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on RemoveFromSupervisor: {exc}");
string errMessage = $"EXCEPTION on MachGroup.RemoveFromSupervisor: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -434,7 +446,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateStatus: {exc}");
string errMessage = $"EXCEPTION on MachGroup.UpdateStatus: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -467,7 +481,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Update: {exc}");
string errMessage = $"EXCEPTION on MachGroup.Update: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -504,7 +520,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateStartEnd: {exc}");
string errMessage = $"EXCEPTION on MachGroup.UpdateEnd: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -537,7 +555,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateOrder: {exc}");
string errMessage = $"EXCEPTION on MachGroup.UpdateOrder: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -575,7 +595,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateStartEnd: {exc}");
string errMessage = $"EXCEPTION on MachGroup.UpdateStart: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -613,7 +635,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateStartEnd: {exc}");
string errMessage = $"EXCEPTION on MachGroup.UpdateStartEnd: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -647,19 +671,16 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateStatus: {exc}");
string errMessage = $"EXCEPTION on MachGroup.UpdateStatus: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
}
/// <summary>
/// Set Supervisor & state for MachGroup
/// </summary>
/// <param name="ProdId"></param>
/// <param name="MachGroupId"></param>
/// <param name="SupervisorId"></param>
/// <returns></returns>
/// <summary> Set Supervisor & state for MachGroup </summary> <param name="ProdId"></param>
/// <param name="MachGroupId"></param> <param name="SupervisorId"></param> <returns></returns>
public bool UpdateSupervisor(int ProdId, int MachGroupId, string SupervisorId)
{
bool done = false;
@@ -685,12 +706,23 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateSupervisor: {exc}");
string errMessage = $"EXCEPTION on MachGroup.UpdateSupervisor: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
}
#endregion Public Methods
#region Private Fields
/// <summary>
/// Istanza logger
/// </summary>
private NLog.Logger Log;
#endregion Private Fields
}
}
@@ -20,60 +20,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
#endregion Public Constructors
#region Protected Methods
/// <summary>
/// Get BtlPartDBId by ProjId + PDN
/// </summary>
/// <param name="ProjId"></param>
/// <param name="PDN"></param>
/// <returns></returns>
protected int FindBtlPart(int ProjId, int PDN)
{
int BtlPartDbId = 0;
using (DatabaseContext locallocalDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
var btlPart = locallocalDbCtx
.BTLPartList
.Where(x => x.Project.ProjId == ProjId && x.PDN == PDN)
.SingleOrDefault();
if (btlPart != null)
{
BtlPartDbId = btlPart.BTLPartDbId;
}
}
return BtlPartDbId;
}
/// <summary>
/// Get BtlPartDBId by ProjId + BtlPartId
/// </summary>
/// <param name="ProjId"></param>
/// <param name="BtlPartId"></param>
/// <returns></returns>
protected int FindBtlPartByBPI(int ProjId, int BtlPartId)
{
int BtlPartDbId = 0;
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
var btlPart = localDbCtx
.BTLPartList
.Where(x => x.Project.ProjId == ProjId && x.PartId == BtlPartId)
.SingleOrDefault();
if (btlPart != null)
{
BtlPartDbId = btlPart.BTLPartDbId;
}
}
return BtlPartDbId;
}
#endregion Protected Methods
#region Public Methods
/// <summary>
@@ -143,7 +89,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Delete: ProdId: {ProdId} | MachGroupId: {MachGroupId} | PartId: {PartId}{Environment.NewLine}{exc}");
string errMessage = $"EXCEPTION on Part.Delete: ProdId: {ProdId} | MachGroupId: {MachGroupId} | PartId: {PartId}{Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -173,7 +121,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on Delete: {exc}");
string errMessage = $"EXCEPTION on Part.Delete: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -202,7 +152,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on DeleteByMachGroup: {exc}");
string errMessage = $"EXCEPTION on Part.DeleteByMachGroup: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -275,8 +227,12 @@ namespace EgtBEAMWALL.DataLayer.Controllers
// aggiorno info sullo status
StatusMapController.man.UpdateAction("", updItem.MachGroup.Prod.ProdId, updItem.PartId, Core.StatusMapItemType.Part, Core.StatusMapOpType.MachGroupMod, "");
}
catch
{ }
catch (Exception exc)
{
string errMessage = $"EXCEPTION on Part.Update: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
}
@@ -308,7 +264,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateStatus: {exc}");
string errMessage = $"EXCEPTION on Part.UpdateEnd: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -341,7 +299,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateStatus: {exc}");
string errMessage = $"EXCEPTION on Part.UpdateStart: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
@@ -375,7 +335,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateStatus: {exc}");
string errMessage = $"EXCEPTION on Part.UpdateStatus: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
@@ -383,5 +345,68 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
#endregion Public Methods
#region Protected Methods
/// <summary>
/// Get BtlPartDBId by ProjId + PDN
/// </summary>
/// <param name="ProjId"></param>
/// <param name="PDN"></param>
/// <returns></returns>
protected int FindBtlPart(int ProjId, int PDN)
{
int BtlPartDbId = 0;
using (DatabaseContext locallocalDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
var btlPart = locallocalDbCtx
.BTLPartList
.Where(x => x.Project.ProjId == ProjId && x.PDN == PDN)
.SingleOrDefault();
if (btlPart != null)
{
BtlPartDbId = btlPart.BTLPartDbId;
}
}
return BtlPartDbId;
}
/// <summary>
/// Get BtlPartDBId by ProjId + BtlPartId
/// </summary>
/// <param name="ProjId"></param>
/// <param name="BtlPartId"></param>
/// <returns></returns>
protected int FindBtlPartByBPI(int ProjId, int BtlPartId)
{
int BtlPartDbId = 0;
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
var btlPart = localDbCtx
.BTLPartList
.Where(x => x.Project.ProjId == ProjId && x.PartId == BtlPartId)
.SingleOrDefault();
if (btlPart != null)
{
BtlPartDbId = btlPart.BTLPartDbId;
}
}
return BtlPartDbId;
}
#endregion Protected Methods
#region Private Fields
/// <summary>
/// Istanza logger
/// </summary>
private NLog.Logger Log;
#endregion Private Fields
}
}
@@ -1,19 +1,13 @@
using System;
using EgtBEAMWALL.DataLayer.DatabaseModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EgtBEAMWALL.DataLayer.DatabaseModels;
using static EgtBEAMWALL.Core.ConstBeam;
namespace EgtBEAMWALL.DataLayer.Controllers
{
public class ProdController : IDisposable
{
#region Private Fields
#endregion Private Fields
#region Public Fields
public static ProdController man = new ProdController();
@@ -28,49 +22,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
#endregion Public Constructors
#region Protected Methods
/// <summary>
/// Helper conversione modelli
/// </summary>
/// <param name="currProd"></param>
/// <returns></returns>
protected Core.ProdFileM coreConv(ProdModel currProd)
{
Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine);
return answ;
}
/// <summary>
/// Get LAST paginated data from DB (DESC ordered)
/// </summary>
/// <param name="numRecord"></param>
/// <returns></returns>
protected List<ProdModel> GetLastDbModelDesc(int numRecord)
{
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// se numRecord = 0 --> passo tutti
if (numRecord == 0)
{
numRecord = localDbCtx.ProdList.Count();
}
// retrieve
return localDbCtx
.ProdList
.OrderByDescending(x => x.ProdId)
.Take(numRecord)
.ToList();
}
}
protected List<int> ProjIdByProd(int ProdId)
{
return DbManager.obj.ProjCtr.GetByProdAsc(ProdId).Select(y => y.nProjId).ToList();
}
#endregion Protected Methods
#region Public Methods
/// <summary>
@@ -159,7 +110,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on DeleteProd: {exc}");
string errMessage = $"EXCEPTION on Prod.DeleteProd: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -285,8 +238,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
/// <summary>
/// Verifica prod assegnato a supervisor:
/// ...se c'e' anche un solo machgroup del prod assegnato ad un supervisor o in stato 0 (dovrebbe essere la stessa cosa?)
/// Verifica prod assegnato a supervisor: ...se c'e' anche un solo machgroup del prod
/// assegnato ad un supervisor o in stato 0 (dovrebbe essere la stessa cosa?)
/// </summary>
/// <param name="ProdId"></param>
/// <returns></returns>
@@ -304,12 +257,39 @@ namespace EgtBEAMWALL.DataLayer.Controllers
return numAssigned > 0;
}
/// <summary>
/// Manage Lock by ProdId (proj & prod)
/// </summary>
/// <param name="ProdId">ProjID</param>
/// <param name="Locked">Stato Lock da impostare</param>
/// <returns></returns>
/// <summary> Return Lock by ProdId (proj & prod) </summary> <param
/// name="ProdId">ProjID</param> <returns></returns>
public bool IsLockByProdId(int ProdId)
{
bool bIsLock = false;
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// seleziono il prod...
var currProd = localDbCtx
.ProdList
.Where(x => x.ProdId == ProdId)
.FirstOrDefault();
if (currProd != null)
{
bIsLock = currProd.Locked;
var currProj = localDbCtx
.ProjList
.Where(x => x.ProdDbId == currProd.ProdDbId)
.ToList();
if (currProj != null && !bIsLock)
{
bIsLock = currProj.Any(x => x.Locked);
}
}
}
return bIsLock;
}
/// <summary> Manage Lock by ProdId (proj & prod) </summary> <param
/// name="ProdId">ProjID</param> <param name="Locked">Stato Lock da impostare</param> <returns></returns>
public ProdModel LockByProdId(int ProdId, bool Locked)
{
ProdModel currProd;
@@ -344,46 +324,12 @@ namespace EgtBEAMWALL.DataLayer.Controllers
return currProd;
}
/// <summary>
/// Return Lock by ProdId (proj & prod)
/// </summary>
/// <param name="ProdId">ProjID</param>
/// <returns></returns>
public bool IsLockByProdId(int ProdId)
{
bool bIsLock = false;
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// seleziono il prod...
var currProd = localDbCtx
.ProdList
.Where(x => x.ProdId == ProdId)
.FirstOrDefault();
if (currProd != null)
{
bIsLock = currProd.Locked;
var currProj = localDbCtx
.ProjList
.Where(x => x.ProdDbId == currProd.ProdDbId)
.ToList();
if (currProj != null && !bIsLock)
{
bIsLock = currProj.Any(x => x.Locked);
}
}
}
return bIsLock;
}
/// <summary>
/// Reinizializzaizone del controller
/// </summary>
public void ResetController()
{
}
}
/// <summary>
/// Update single PROD
@@ -547,38 +493,16 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateMachGroup: {exc}");
string errMessage = $"EXCEPTION on Prod.UpdateMachGroup: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return currData;
}
/// <summary>
/// Update record su DB x PType
/// </summary>
/// <param name="ProdId"></param>
/// <param name="PType"></param>
/// <returns></returns>
public Core.ProdFileM UpdatePType(int ProdId, BWType PType)
{
ProdModel currData;
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
currData = localDbCtx
.ProdList
.Where(x => x.ProdId == ProdId)
.SingleOrDefault();
// aggiorno valore BTL
currData.PType = PType;
// Commit changes
localDbCtx.SaveChanges();
}
return coreConv(currData);
}
/// <summary>
/// Update record su DB x PType
/// Update record su DB x PType
/// </summary>
/// <param name="ProdId"></param>
/// <param name="Machine"></param>
@@ -601,6 +525,82 @@ namespace EgtBEAMWALL.DataLayer.Controllers
return coreConv(currData);
}
/// <summary>
/// Update record su DB x PType
/// </summary>
/// <param name="ProdId"></param>
/// <param name="PType"></param>
/// <returns></returns>
public Core.ProdFileM UpdatePType(int ProdId, BWType PType)
{
ProdModel currData;
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
currData = localDbCtx
.ProdList
.Where(x => x.ProdId == ProdId)
.SingleOrDefault();
// aggiorno valore BTL
currData.PType = PType;
// Commit changes
localDbCtx.SaveChanges();
}
return coreConv(currData);
}
#endregion Public Methods
#region Protected Methods
/// <summary>
/// Helper conversione modelli
/// </summary>
/// <param name="currProd"></param>
/// <returns></returns>
protected Core.ProdFileM coreConv(ProdModel currProd)
{
Core.ProdFileM answ = Core.ProdFileM.CreateProdFileM(currProd.ProdId, ProjIdByProd(currProd.ProdId), currProd.DtCreated, currProd.Description, currProd.PType, currProd.Machine);
return answ;
}
/// <summary>
/// Get LAST paginated data from DB (DESC ordered)
/// </summary>
/// <param name="numRecord"></param>
/// <returns></returns>
protected List<ProdModel> GetLastDbModelDesc(int numRecord)
{
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// se numRecord = 0 --> passo tutti
if (numRecord == 0)
{
numRecord = localDbCtx.ProdList.Count();
}
// retrieve
return localDbCtx
.ProdList
.OrderByDescending(x => x.ProdId)
.Take(numRecord)
.ToList();
}
}
protected List<int> ProjIdByProd(int ProdId)
{
return DbManager.obj.ProjCtr.GetByProdAsc(ProdId).Select(y => y.nProjId).ToList();
}
#endregion Protected Methods
#region Private Fields
/// <summary>
/// Istanza logger
/// </summary>
private NLog.Logger Log;
#endregion Private Fields
}
}
@@ -2,18 +2,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using static EgtBEAMWALL.Core.ConstBeam;
namespace EgtBEAMWALL.DataLayer.Controllers
{
public class ProjController : IDisposable
{
#region Private Fields
#endregion Private Fields
#region Public Constructors
public ProjController()
@@ -22,81 +16,11 @@ namespace EgtBEAMWALL.DataLayer.Controllers
#endregion Public Constructors
#region Protected Methods
/// <summary>
/// Helper conversione modelli
/// </summary>
/// <param name="currProj"></param>
/// <returns></returns>
protected Core.ProjFileM coreConv(ProjModel currProj)
{
Core.ProjFileM answ = null;
if (currProj != null)
{
answ = Core.ProjFileM.CreateProjFileM(currProj.ProjId, ProdIdByProdDbId(currProj.ProdDbId), currProj.DtCreated, currProj.DtExported, currProj.ListName, currProj.BTLFileName, currProj.IsNew, currProj.Locked, currProj.PType, currProj.Machine);
}
return answ;
}
/// <summary>
/// Get LAST paginated data from DB (DESC ordered)
/// </summary>
/// <param name="numRecord"></param>
/// <returns></returns>
protected List<ProjModel> GetLastDbModelDesc(int numRecord)
{
// se numRecord = 0 --> passo tutti
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
if (numRecord == 0)
{
numRecord = localDbCtx.ProjList.Count();
}
// retrieve
return localDbCtx
.ProjList
.OrderByDescending(x => x.ProjId)
.Take(numRecord)
.ToList();
}
}
/// <summary>
/// Get ProdId by ProdDbId, 0 se non trovato
/// </summary>
/// <param name="ProdDbId"></param>
/// <returns></returns>
protected int ProdIdByProdDbId(int? ProdDbId)
{
int answ = 0;
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
if (ProdDbId != null)
{
var prodRecord = localDbCtx
.ProdList
.Where(x => x.ProdDbId == ProdDbId)
.SingleOrDefault();
if (prodRecord != null)
{
answ = prodRecord.ProdId;
}
}
}
return answ;
}
#endregion Protected Methods
#region Public Methods
/// <summary>
/// Search for already imported BTL from FileName (only)
/// =0 : NOT found
/// >0 : ProjId (already rpesent) for overwrite
/// =0 : NOT found &gt;0 : ProjId (already rpesent) for overwrite
/// </summary>
/// <param name="BTLFileName"></param>
/// <returns></returns>
@@ -125,7 +49,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
var currProj = localDbCtx
var currProj = localDbCtx
.ProjList
.Where(x => x.ProjId == ProjId)
.SingleOrDefault();
@@ -145,7 +69,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on DeleteProj: {exc}");
string errMessage = $"EXCEPTION on Proj.DeleteProj: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -158,7 +84,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// <summary>
/// Get records filtered by BtlPartName matching regexp BtlFileName[_number]
/// </summary>
/// <param name="BtlFileName">Base name to search for (=starts by BtlFileName%)</param>
/// <param name="BtlFileName">Base name to search for (=starts by BtlFileName%)</param>
/// <returns></returns>
public List<ProjModel> FindByBtlFileName(string BtlFileName)
{
@@ -194,7 +120,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
}
}
}
}
return searchResult;
@@ -270,7 +195,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on GetByProdAsc: {exc}");
string errMessage = $"EXCEPTION on Proj.GetByProdAsc: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
// retrieve
var dbRes = localDbCtx
@@ -308,7 +235,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on GetByProdAsc: {exc}");
string errMessage = $"EXCEPTION on Proj.GetByProdDesc: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
// retrieve
var dbRes = localDbCtx
@@ -409,12 +338,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
return nextId;
}
/// <summary>
/// Manage Lock by ProjId (proj & prod)
/// </summary>
/// <param name="ProjId">ProjID</param>
/// <param name="Locked">Stato Lock da impostare</param>
/// <returns></returns>
/// <summary> Manage Lock by ProjId (proj & prod) </summary> <param
/// name="ProjId">ProjID</param> <param name="Locked">Stato Lock da impostare</param> <returns></returns>
public Core.ProjFileM LockByProjId(int ProjId, bool Locked)
{
ProjModel currProj;
@@ -465,7 +390,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// </summary>
public void ResetController()
{
}
}
/// <summary>
/// Reimposta come NEW
@@ -537,7 +462,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
// 2021.05.03 modifica update: esistenti le MODIFICO, nuove aggiungo, inesistenti elimino in cascata con Part
// 2021.05.03 modifica update: esistenti le MODIFICO, nuove aggiungo, inesistenti
// elimino in cascata con Part
// sel delle BTLParts del proj
List<BTLPartModel> oldBtlParts = localDbCtx
@@ -607,7 +533,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
/// <summary>
/// Update record su DB x nomeBTL, ListName, ExportDate
/// Update record su DB x nomeBTL, ListName, ExportDate
/// </summary>
/// <param name="ProjId"></param>
/// <param name="BTLFileName"></param>
@@ -625,7 +551,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
.Where(x => x.ProjId == ProjId)
.SingleOrDefault();
// 2022.01.24: verifico UNIVOCITA' nel nome del file: SE fosse duplicato --> nuovo nome, nel formato nomeOriginale_idx, dove idx è il contatore libero successivo
// 2022.01.24: verifico UNIVOCITA' nel nome del file: SE fosse duplicato --> nuovo
// nome, nel formato nomeOriginale_idx, dove idx è il contatore libero successivo
var duplicateList = FindByBtlFileName(BTLFileName);
// devo verificare SOLO SE la lista non è vuota
if (duplicateList != null && duplicateList.Count > 0)
@@ -640,7 +567,8 @@ namespace EgtBEAMWALL.DataLayer.Controllers
BTLFileName = $"{BTLFileName}_1";
}
}
// se ne ho + di 1 --> so che il maxId interno avrò il valore ULTIMO x prendere il successivo
// se ne ho + di 1 --> so che il maxId interno avrò il valore ULTIMO x prendere
// il successivo
else
{
var lastRec = duplicateList.OrderByDescending(x => x.ProjDbId).FirstOrDefault();
@@ -672,7 +600,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
/// <summary>
/// Update record su DB x nomeBTL, ListName, ExportDate
/// Update record su DB x nomeBTL, ListName, ExportDate
/// </summary>
/// <param name="ProjId"></param>
/// <param name="ListName"></param>
@@ -696,7 +624,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
/// <summary>
/// Update record su DB x PType
/// Update record su DB x PType
/// </summary>
/// <param name="ProjId"></param>
/// <param name="Machine"></param>
@@ -720,5 +648,83 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
#endregion Public Methods
#region Protected Methods
/// <summary>
/// Helper conversione modelli
/// </summary>
/// <param name="currProj"></param>
/// <returns></returns>
protected Core.ProjFileM coreConv(ProjModel currProj)
{
Core.ProjFileM answ = null;
if (currProj != null)
{
answ = Core.ProjFileM.CreateProjFileM(currProj.ProjId, ProdIdByProdDbId(currProj.ProdDbId), currProj.DtCreated, currProj.DtExported, currProj.ListName, currProj.BTLFileName, currProj.IsNew, currProj.Locked, currProj.PType, currProj.Machine);
}
return answ;
}
/// <summary>
/// Get LAST paginated data from DB (DESC ordered)
/// </summary>
/// <param name="numRecord"></param>
/// <returns></returns>
protected List<ProjModel> GetLastDbModelDesc(int numRecord)
{
// se numRecord = 0 --> passo tutti
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
if (numRecord == 0)
{
numRecord = localDbCtx.ProjList.Count();
}
// retrieve
return localDbCtx
.ProjList
.OrderByDescending(x => x.ProjId)
.Take(numRecord)
.ToList();
}
}
/// <summary>
/// Get ProdId by ProdDbId, 0 se non trovato
/// </summary>
/// <param name="ProdDbId"></param>
/// <returns></returns>
protected int ProdIdByProdDbId(int? ProdDbId)
{
int answ = 0;
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
if (ProdDbId != null)
{
var prodRecord = localDbCtx
.ProdList
.Where(x => x.ProdDbId == ProdDbId)
.SingleOrDefault();
if (prodRecord != null)
{
answ = prodRecord.ProdId;
}
}
}
return answ;
}
#endregion Protected Methods
#region Private Fields
/// <summary>
/// Istanza logger
/// </summary>
private NLog.Logger Log;
#endregion Private Fields
}
}
@@ -7,11 +7,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
{
public class StatusMapController : IDisposable
{
#region Private Fields
#endregion Private Fields
#region Public Fields
/// <summary>
@@ -34,7 +29,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// <summary>
/// Elimina i dati di una sessione (SupervisorId) precedente
/// </summary>
/// <param name="Session">Se vuoto --> tutti</param>
/// <param name="Session">Se vuoto --&gt; tutti</param>
/// <returns></returns>
public bool DeleteSession(string Session)
{
@@ -68,7 +63,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on DeleteSession: {exc}");
string errMessage = $"EXCEPTION on StatusMap.DeleteSession: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
return done;
@@ -97,7 +94,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
/// <summary>
/// Get data for session where Index > minIndex ordered by index DESC
/// Get data for session where Index &gt; minIndex ordered by index DESC
/// </summary>
/// <param name="Session"></param>
/// <param name="minIndex"></param>
@@ -258,7 +255,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
catch (Exception exc)
{
Console.WriteLine($"EXCEPTION on UpdateAction: {exc}");
string errMessage = $"EXCEPTION on StatusMap.UpdateAction: {Environment.NewLine}{exc}";
Console.WriteLine(errMessage);
Log.Error(errMessage);
}
}
}
@@ -266,5 +265,14 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
#endregion Public Methods
#region Private Fields
/// <summary>
/// Istanza logger
/// </summary>
private NLog.Logger Log;
#endregion Private Fields
}
}
+20
View File
@@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
namespace EgtBEAMWALL.DataLayer
@@ -76,6 +78,24 @@ namespace EgtBEAMWALL.DataLayer
ADMIN_CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database=mysql;uid=root;pwd=Egalware_24068!;sslmode=None;CHARSET=utf8";
}
/// <summary>
/// Aggiorna conf NLog x target DIR
/// </summary>
/// <param name="logDir"></param>
public static void SetupLogDir(string logDir)
{
string appDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string filePath = Path.Combine(appDir, "NLog.config");
// leggo il file NLog
string rawData = File.ReadAllText(filePath);
// sostituzione livello minimo da selezione
rawData = rawData.Replace("${basedir}", logDir);
// ri-scrivo file NLog
File.WriteAllText(filePath, rawData);
}
public static bool CheckUser(string nKey, string sKey, bool isNetwork)
{
// esecuzione script di install locale
@@ -55,6 +55,9 @@
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.5.0.1\lib\net46\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel" />
<Reference Include="System.ComponentModel.DataAnnotations" />
@@ -63,6 +66,7 @@
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Drawing.Design" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.Management" />
<Reference Include="System.Security" />
<Reference Include="System.ServiceModel" />
@@ -127,6 +131,7 @@
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="NLog.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
+39
View File
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
<variable name="logDir" value="${basedir}"/>
<targets>
<target xsi:type="File"
name="f_base"
fileName="${logDir}/${shortdate}.log"
layout="${longdate} [${uppercase:${level}}] ${logger:shortName=true}|${message}"
archiveFileName="${logDir}/${shortdate}.{###}.log"
archiveNumbering="Sequence"
archiveAboveSize="10240000"
maxArchiveFiles="60"
enableArchiveFileCompression="false"
keepFileOpen="false"
/>
<target xsi:type="File"
name="f_error"
fileName="${logDir}/${shortdate}_err.log"
layout="${longdate} [${uppercase:${level}}] ${logger:shortName=true}|${message}${newline}${exception:format=tostring}"
archiveFileName="${logDir}/${shortdate}_err.{###}.log"
archiveNumbering="Sequence"
archiveAboveSize="10240000"
maxArchiveFiles="60"
enableArchiveFileCompression="false"
keepFileOpen="false"
/>
</targets>
<rules>
<!-- Logging Levels (Trace, Debug, Info, Warn, Error, Fatal)-->
<logger name="*" minlevel="Info" maxlevel="Warn" final="true" writeTo="f_base" />
<logger name="*" minlevel="Error" writeTo="f_error" />
</rules>
</nlog>
+1
View File
@@ -2,4 +2,5 @@
<packages>
<package id="EntityFramework" version="6.4.4" targetFramework="net452" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net452" />
<package id="NLog" version="5.0.1" targetFramework="net472" />
</packages>