Fix comportamento lock creando prod
This commit is contained in:
@@ -30,133 +30,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
|
||||
#endregion Public Constructors
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Create record on DB
|
||||
/// </summary>
|
||||
/// <param name="newProdId"></param>
|
||||
/// <param name="Description"></param>
|
||||
/// <returns></returns>
|
||||
public ProdModel Create(int newProdId, string Description)
|
||||
{
|
||||
ProdModel newProd = new ProdModel() { ProdId = newProdId, Description = Description };
|
||||
|
||||
try
|
||||
{
|
||||
// Add to database
|
||||
dbCtx.ProdList.Add(newProd);
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
|
||||
return newProd;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get paginated data from DB (ASC ordered)
|
||||
/// </summary>
|
||||
/// <param name="ProdDbIdStart"></param>
|
||||
/// <param name="numRecord"></param>
|
||||
/// <returns></returns>
|
||||
public List<ProdModel> GetPaginatedAsc(int ProdDbIdStart, int numRecord)
|
||||
{
|
||||
int numEnd = ProdDbIdStart - numRecord;
|
||||
// check numEnd
|
||||
if (numEnd < 0)
|
||||
numEnd = 0;
|
||||
// retrieve
|
||||
return dbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdDbId <= ProdDbIdStart)
|
||||
.OrderBy(x => x.ProdDbId)
|
||||
.Take(numRecord)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get paginated data from DB (DESC ordered)
|
||||
/// </summary>
|
||||
/// <param name="PartDbIdStart"></param>
|
||||
/// <param name="numRecord"></param>
|
||||
/// <returns></returns>
|
||||
public List<ProdModel> GetPaginatedDesc(int PartDbIdStart, int numRecord)
|
||||
{
|
||||
int numEnd = PartDbIdStart - numRecord;
|
||||
// check numEnd
|
||||
if (numEnd < 0)
|
||||
numEnd = 0;
|
||||
// retrieve
|
||||
return dbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdDbId <= PartDbIdStart)
|
||||
.OrderByDescending(x => x.ProdDbId)
|
||||
.Take(numRecord)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get filtered data by ProdectId (ASC ordered)
|
||||
/// </summary>
|
||||
/// <param name="ProdDbId"></param>
|
||||
/// <returns></returns>
|
||||
public List<ProdModel> GetByProdAsc(int ProdDbId)
|
||||
{
|
||||
// retrieve
|
||||
return dbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdDbId == ProdDbId)
|
||||
.OrderBy(x => x.ProdDbId)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get filtered data by ProdectId (DESC ordered)
|
||||
/// </summary>
|
||||
/// <param name="ProdDbId"></param>
|
||||
/// <returns></returns>
|
||||
public List<ProdModel> GetByProdDesc(int ProdDbId)
|
||||
{
|
||||
// retrieve
|
||||
return dbCtx
|
||||
.ProdList
|
||||
.Where(x => x.ProdDbId == ProdDbId)
|
||||
.OrderByDescending(x => x.ProdDbId)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get record by RawPartDbId
|
||||
/// </summary>
|
||||
/// <param name="RawPartDbId"></param>
|
||||
/// <returns></returns>
|
||||
public ProdModel FindByRawPartDbId(int RawPartDbId)
|
||||
{
|
||||
var rawPart = dbCtx
|
||||
.RawPartList
|
||||
.Where(x => x.RawPartDbId == RawPartDbId)
|
||||
.SingleOrDefault();
|
||||
|
||||
return FindByProdDbId(rawPart.ProdDbId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get record by RawPartId
|
||||
/// </summary>
|
||||
/// <param name="RawPartId "></param>
|
||||
/// <returns></returns>
|
||||
public ProdModel FindByRawPartId(int RawPartId)
|
||||
{
|
||||
var rawPart = dbCtx
|
||||
.RawPartList
|
||||
.Where(x => x.RawPartId == RawPartId)
|
||||
.SingleOrDefault();
|
||||
|
||||
return FindByProdDbId(rawPart.ProdDbId);
|
||||
}
|
||||
#endif
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
/// <summary>
|
||||
@@ -212,6 +85,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
|
||||
// lo aggiorno
|
||||
currProj.ProjDbId = currProd.ProdDbId;
|
||||
currProj.Locked = true;
|
||||
|
||||
// salvo
|
||||
dbCtx.SaveChanges();
|
||||
@@ -344,6 +218,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
|
||||
// aggiungo proj-prod
|
||||
currProj.ProdDbId = newProd.ProdDbId;
|
||||
currProj.Locked = true;
|
||||
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
@@ -522,72 +397,5 @@ namespace EgtBEAMWALL.DataLayer.Controllers
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Update record su DB x elenco MachGroupDB
|
||||
/// </summary>
|
||||
/// <param name="ProdId">Id del Prod</param>
|
||||
/// <param name="MachGroupList">Elenco MachGroup da associare</param>
|
||||
/// <returns></returns>
|
||||
public ProdModel UpdateMachGroupDB(int ProdId, List<MachGroupModel> itemsMG2add, List<PartModel> PartList2Add)
|
||||
{
|
||||
// qui salvo i valori da eliminare
|
||||
List<PartModel> PartList2Del = new List<PartModel>();
|
||||
// Recupero il PROD
|
||||
ProdModel currData = FindByProdId(ProdId);
|
||||
|
||||
// sel delle BTLParts da proj
|
||||
var itemsMG2del = dbCtx
|
||||
.MachGroupList
|
||||
.Where(x => x.ProdDbId == currData.ProdDbId).ToList();
|
||||
|
||||
try
|
||||
{
|
||||
// per ogni itemsMG2del rimuovo Part
|
||||
foreach (var item in itemsMG2del)
|
||||
{
|
||||
var items2del = dbCtx
|
||||
.PartList
|
||||
.Where(x => x.MachGroupDbId == item.MachGroupDbId);
|
||||
PartList2Del.AddRange(items2del);
|
||||
}
|
||||
if (PartList2Del.Count > 0)
|
||||
{
|
||||
// remove from database
|
||||
dbCtx.PartList.RemoveRange(PartList2Del);
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
|
||||
// elimino dal DB i MG
|
||||
dbCtx.MachGroupList.RemoveRange(itemsMG2del);
|
||||
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
|
||||
// aggiungo le nuove
|
||||
dbCtx.MachGroupList.AddRange(itemsMG2add);
|
||||
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
|
||||
// aggiungo Parts
|
||||
dbCtx.PartList.AddRange(PartList2Add);
|
||||
|
||||
// aggiorno valore isNew a false
|
||||
currData.IsNew = false;
|
||||
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Console.WriteLine($"EXCEPTION on UpdateMachGroup: {exc}");
|
||||
}
|
||||
|
||||
return currData;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user