Merge remote-tracking branch 'gitlab.seriate/DataLayer' into feature/NewWarehouse

This commit is contained in:
Emmanuele Sassi
2024-01-31 12:17:07 +01:00
14 changed files with 1071 additions and 23 deletions
@@ -0,0 +1,141 @@
using EgtBEAMWALL.DataLayer.DatabaseModels;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
namespace EgtBEAMWALL.DataLayer.Controllers
{
/// <summary>
/// Gestione Alias su DB (es: materiali da BTL e su DB)
/// </summary>
public class AliasController : IDisposable
{
#region Public Constructors
public AliasController()
{
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Delete by key
/// </summary>
/// <param name="Family"></param>
/// <param name="ValueOriginal"></param>
/// <returns></returns>
public bool DeleteByKey(string Family, string ValueOriginal)
{
bool done = false;
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
var items2del = localDbCtx
.AliasList
.Where(x => x.Family == Family && x.ValueOriginal == ValueOriginal);
try
{
// Add to database
localDbCtx.AliasList.RemoveRange(items2del);
// Commit changes
localDbCtx.SaveChanges();
done = true;
}
catch (Exception exc)
{
Log.Error($"EXCEPTION on Alias.DeleteByKey: {Environment.NewLine}{exc}");
}
}
return done;
}
public void Dispose()
{
}
/// <summary>
/// Get record by Key
/// </summary>
/// <param name="MatId"></param>
/// <returns></returns>
public AliasModel FindByDbId(string Family, string ValueOriginal)
{
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
return localDbCtx
.AliasList
.Where(x => x.Family == Family && x.ValueOriginal == ValueOriginal)
.SingleOrDefault();
}
}
/// <summary>
/// Elenco Alias x famiglia
/// </summary>
/// <param name="Family">se "" restituisce tutti</param>
/// <returns></returns>
public List<AliasModel> GetFilt(string Family)
{
// retrieve
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
return localDbCtx
.AliasList
.Where(x => x.Family == Family)
.OrderBy(x => x.ValueOriginal)
.ToList();
}
}
/// <summary>
/// Update or insert Alias record
/// </summary>
/// <param name="updItem"></param>
/// <returns></returns>
public bool Upsert(AliasModel updItem)
{
bool fatto = false;
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
try
{
var item2update = localDbCtx
.AliasList
.Where(x => x.Family == updItem.Family && x.ValueOriginal == updItem.ValueOriginal)
.SingleOrDefault();
if (item2update != null)
{
// update, vers 1...
localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);
// Commit changes
localDbCtx.SaveChanges();
fatto = true;
}
else
{
localDbCtx.AliasList.Add(updItem);
}
}
catch (Exception exc)
{
Log.Error($"EXCEPTION on Alias.Upsert: {Environment.NewLine}{exc}");
}
}
return fatto;
}
#endregion Public Methods
#region Private Fields
/// <summary>
/// Istanza logger
/// </summary>
private NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
}
}
@@ -0,0 +1,228 @@
using EgtBEAMWALL.DataLayer.DatabaseModels;
using EgwProxy.MagMan;
using EgwProxy.MagMan.DTO;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace EgtBEAMWALL.DataLayer.Controllers
{
/// <summary>
/// Gestione Sync MagMan (DB locale/online)
/// </summary>
public class MagmanController : IDisposable
{
#region Public Constructors
/// <summary>
/// Init controller gestione MagmanSync
/// </summary>
/// <param name="ServerAddress"></param>
/// <param name="AuthToken"></param>
public MagmanController(string ServerAddress, string AuthToken)
{
commLib = new DataSyncro(ServerAddress, AuthToken);
bool servOk = commLib.CheckRemote();
Log.Info($"Avviato MagmanController | server: {ServerAddress} | CheckRemote OK: {servOk}");
}
#endregion Public Constructors
#region Public Methods
public void Dispose()
{
commLib = null;
}
/// <summary>
/// Esegue sync materiali:
/// - upload + sync (cloud)
/// - download + sync (locale)
/// </summary>
/// <param name="MatCode">Se "" --&gt; tutti, altrimenti limitatamente al MatCode cercato</param>
/// <returns></returns>
public async Task<bool> MaterialsSync(string MatCode = "")
{
bool answ = false;
// verifico server ok
bool servOk = commLib.CheckRemote();
if (servOk)
{
using (MaterialsController dbContr = new MaterialsController())
{
// in primis leggo l'elenco materiali dal DB locale
List<MaterialModel> matListDb = dbContr.GetFiltModel(MatCode);
if (matListDb != null)
{
List<MaterialDTO> list2send = matListDb.Select(x => MaterialsController.ConvToDto(x)).ToList();
// preparo pacchetto invio...
answ = await commLib.MaterialsSend(list2send);
// se inviato, scarico x merge locale
if (answ)
{
List<MaterialDTO> list2merge = await commLib.MaterialsGet();
// se filtro x materiale processo solo quello...
if (!string.IsNullOrEmpty(MatCode))
{
list2merge = list2merge.Where(x => x.MatCode == MatCode).ToList();
}
// effettuo conversione DTO --> model + merge
List<MaterialModel> list2MergeDb = list2merge.Select(x => MaterialsController.ConvToModel(x)).ToList();
// ciclo...
if (list2MergeDb != null)
{
foreach (var item in list2MergeDb)
{
dbContr.Upsert(item);
}
}
}
}
}
}
return answ;
}
/// <summary>
/// Esegue registrazione Risorse (RawItems) come CONSUMI effettivi:
/// </summary>
/// <param name="idxProjDbId">DB Id del progetto x cui si inviano i dati</param>
/// <param name="rec2send">
/// Lista items e quantità consumate, se fossero positive vengono cambiate di segno...
/// </param>
/// <returns></returns>
public async Task<bool> ResourceSendCons(int idxProjDbId, List<RawItemModel> rec2send)
{
bool answ = false;
// verifico server ok
bool servOk = commLib.CheckRemote();
if (servOk)
{
answ = await ResourcesSync(rec2send);
if (answ)
{
// in primis converto le risorse...
List<ResourceDTO> list2send = rec2send.Select(x => RawItemsController.ConvToResDtoNeg(x)).ToList();
// effettuo invio...
answ = await commLib.ResourceSend(idxProjDbId, ProjResState.Consumed, list2send);
}
}
return answ;
}
/// <summary>
/// Esegue registrazione Risorse (RawItems) come stima:
/// </summary>
/// <param name="idxProjDbId">DB Id del progetto x cui si inviano i dati</param>
/// <param name="rec2send">Lista items con quantità prevista</param>
/// <returns></returns>
public async Task<bool> ResourceSendEstimate(int idxProjDbId, List<RawItemModel> rec2send)
{
bool answ = false;
// verifico server ok
bool servOk = commLib.CheckRemote();
if (servOk)
{
answ = await ResourcesSync(rec2send);
if (answ)
{
// in primis converto le risorse...
List<ResourceDTO> list2send = rec2send.Select(x => RawItemsController.ConvToResDto(x)).ToList();
// effettuo invio...
answ = await commLib.ResourceSend(idxProjDbId, ProjResState.Estimated, list2send);
}
}
return answ;
}
/// <summary>
/// Esegue sync risorse (Materiali + RawItem):
/// - upload + sync (cloud)
/// - download + sync (locale)
/// </summary>
/// <param name="itemList">
/// Elenco item, saranno inviati x sync (con quantità sovrascritta) SOLO SE RawItemCloudId
/// == 0
/// </param>
/// <returns></returns>
public async Task<bool> ResourcesSync(List<RawItemModel> itemList)
{
bool answ = false;
// verifico server ok
bool servOk = commLib.CheckRemote();
if (servOk)
{
using (MaterialsController matDbContr = new MaterialsController())
{
using (RawItemsController rawItemDbContr = new RawItemsController())
{
// per prima cosa invio dati
Dictionary<int, MaterialDTO> dictMat = new Dictionary<int, MaterialDTO>();
// costruisco elenco materiali da inviare in magazzino (se RawItemCloudId==
// 0) ...
var rec2sync = itemList.Where(x => x.RawItemCloudId == 0).ToList();
foreach (var item in rec2sync)
{
// verifico se mancasse il materiale nel caso lo aggiungo...
if (!dictMat.ContainsKey(item.MatId))
{
var rigaMat = matDbContr.FindByDbIdModel(item.MatId);
if (rigaMat != null)
{
var rigaMatDto = MaterialsController.ConvToDto(rigaMat);
dictMat.Add(item.MatId, rigaMatDto);
}
}
// a questo punto aggiungo item nel DTO del dictionary
dictMat[item.MatId].ItemList.Add(RawItemsController.ConvToItemDto(item));
}
// per ogni materiale faccio invio + rilettura/sync...
if (dictMat != null && dictMat.Count > 0)
{
foreach (var matKVP in dictMat)
{
// invio!
answ = await commLib.InventorySend(matKVP.Value);
// ora rileggo dati...
if (answ)
{
List<MaterialDTO> list2merge = await commLib.InventoryGet(matKVP.Key);
// ciclo sui materiali...
if (list2merge != null)
{
foreach (var item in list2merge)
{
matDbContr.Upsert(MaterialsController.ConvToModel(item));
// ora processo 1:1 gli items...
foreach (var rawItem in item.ItemList)
{
rawItemDbContr.Upsert(RawItemsController.ConvToModel(rawItem, true));
}
}
}
}
}
}
}
}
}
return answ;
}
#endregion Public Methods
#region Private Fields
private DataSyncro commLib = null;
/// <summary>
/// Istanza logger
/// </summary>
private NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
}
}
@@ -1,4 +1,5 @@
using EgtBEAMWALL.DataLayer.DatabaseModels;
using EgwProxy.MagMan.DTO;
using NLog;
using System;
using System.Collections.Generic;
@@ -21,6 +22,79 @@ namespace EgtBEAMWALL.DataLayer.Controllers
#region Public Methods
/// <summary>
/// Conversion of DB model class to base class
/// </summary>
/// <param name="coreMat"></param>
/// <returns></returns>
public static Core.MaterialM ConvToCore(MaterialModel dbRec)
{
Core.MaterialM answ = new Core.MaterialM(dbRec.MatId, (double)dbRec.WMm, (double)dbRec.HMm, (double)dbRec.LMm, dbRec.MatCode);
return answ;
}
/// <summary>
/// Helper conversione a DTO
/// </summary>
/// <param name="currRec"></param>
/// <returns></returns>
public static MaterialDTO ConvToDto(MaterialModel currRec)
{
MaterialDTO answ = new MaterialDTO()
{
MatCloudId = currRec.MatCloudId,
MatLocalId = currRec.MatId,
MatCode = currRec.MatCode,
MatDesc = currRec.MatDesc,
HMm = currRec.HMm,
LMm = currRec.LMm,
WMm = currRec.WMm
};
return answ;
}
/// <summary>
/// Helper conversione da DTO
/// </summary>
/// <param name="currRec"></param>
/// <returns></returns>
public static MaterialModel ConvToModel(MaterialDTO currRec)
{
MaterialModel answ = new MaterialModel()
{
MatCloudId = currRec.MatCloudId,
MatId = currRec.MatLocalId,
MatCode = currRec.MatCode,
MatDesc = currRec.MatDesc,
HMm = currRec.HMm,
LMm = currRec.LMm,
WMm = currRec.WMm
};
return answ;
}
/// <summary>
/// Conversion of base class to DB model class
/// </summary>
/// <param name="coreRec"></param>
/// <returns></returns>
public static MaterialModel ConvToModel(Core.MaterialM coreRec)
{
MaterialModel answ = new MaterialModel();
if (coreRec != null)
{
answ = new MaterialModel()
{
MatId = coreRec.nId,
MatCode = coreRec.sMaterial,
HMm = (decimal)coreRec.dH,
LMm = (decimal)coreRec.dL,
WMm = (decimal)coreRec.dW,
};
}
return answ;
}
/// <summary>
/// Delete by key
/// </summary>
@@ -59,33 +133,84 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// </summary>
/// <param name="MatId"></param>
/// <returns></returns>
public MaterialModel FindByDbId(int MatId)
public Core.MaterialM FindByDbId(int MatId)
{
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
Core.MaterialM result = new Core.MaterialM(0, 0, 0, "NONE");
var rawData = FindByDbIdModel(MatId);
if (rawData != null)
{
return localDbCtx
.MaterialsList
.Where(x => x.MatId == MatId)
.SingleOrDefault();
result = ConvToCore(rawData);
}
return result;
}
/// <summary>
/// Get Material (filtro x MatCode)
/// Get record by Key in formato Model
/// </summary>
/// <param name="MatId"></param>
/// <returns></returns>
public MaterialModel FindByDbIdModel(int MatId)
{
MaterialModel result = new MaterialModel();
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
result = localDbCtx
.MaterialsList
.Where(x => x.MatId == MatId)
.SingleOrDefault();
}
return result;
}
/// <summary>
/// Get Material (filtro x MatCode) in formato Core
/// </summary>
/// <param name="MatCode">se "" restituisce tutti</param>
/// <returns></returns>
public List<MaterialModel> GetFilt(string MatCode)
public List<Core.MaterialM> GetFilt(string MatCode)
{
// recupero e converto
List<Core.MaterialM> result = new List<Core.MaterialM>();
var rawData = GetFiltModel(MatCode);
if (rawData != null)
{
result = rawData.Select(x => ConvToCore(x)).ToList();
}
return result;
}
/// <summary>
/// Get Material (filtro x MatCode) in formato Model
/// </summary>
/// <param name="MatCode">se "" restituisce tutti</param>
/// <returns></returns>
public List<MaterialModel> GetFiltModel(string MatCode)
{
List<MaterialModel> result = new List<MaterialModel>();
// retrieve
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
return localDbCtx
.MaterialsList
.Where(x => string.IsNullOrEmpty(MatCode) || x.MatCode == MatCode)
.OrderBy(x => x.MatDesc)
.ToList();
result = localDbCtx
.MaterialsList
.Where(x => string.IsNullOrEmpty(MatCode) || x.MatCode == MatCode)
.OrderBy(x => x.MatDesc)
.ToList();
}
return result;
}
/// <summary>
/// Update or insert Material record from CoreM
/// </summary>
/// <param name="updItem"></param>
/// <returns></returns>
public bool Upsert(Core.MaterialM coreItem)
{
bool fatto = false;
// converto
MaterialModel updItem = ConvToModel(coreItem);
fatto = Upsert(updItem);
return fatto;
}
/// <summary>
@@ -103,7 +228,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
var item2update = localDbCtx
.MaterialsList
.Where(x => x.MatId == updItem.MatId
|| x.MatExtId == updItem.MatExtId
|| x.MatCloudId == updItem.MatCloudId
|| (x.MatCode == updItem.MatCode && x.WMm == updItem.WMm && x.HMm == updItem.HMm && x.LMm == updItem.LMm))
.SingleOrDefault();
@@ -1,4 +1,5 @@
using EgtBEAMWALL.DataLayer.DatabaseModels;
using EgwProxy.MagMan.DTO;
using NLog;
using System;
using System.Collections.Generic;
@@ -21,6 +22,145 @@ namespace EgtBEAMWALL.DataLayer.Controllers
#region Public Methods
/// <summary>
/// Conversion of DB model class to base class
/// </summary>
/// <param name="dbRec"></param>
/// <returns></returns>
public static Core.RawPartM ConvToCore(RawItemModel dbRec)
{
// converto in primis il materiale relativo
Core.MaterialM matRec = MaterialsController.ConvToCore(dbRec.MaterialNav);
Core.RawPartM answ = new Core.RawPartM(dbRec.RawItemId, matRec, (double)dbRec.WMm, (double)dbRec.LMm, dbRec.QtyAvail, dbRec.IsActive);
return answ;
}
/// <summary>
/// Helper conversione a ItemDTO
/// </summary>
/// <param name="currRec"></param>
/// <returns></returns>
public static ItemDTO ConvToItemDto(RawItemModel currRec)
{
ItemDTO answ = new ItemDTO()
{
MatCloudId = currRec.MaterialNav != null ? currRec.MaterialNav.MatCloudId : 0,
MatLocalId = currRec.MatId,
RawItemCloudId = currRec.RawItemCloudId,
RawItemLocalId = currRec.RawItemId,
IsRemn = currRec.IsRemn,
QtyAvail = currRec.QtyAvail,
HMm = currRec.HMm,
LMm = currRec.LMm,
WMm = currRec.WMm,
Note = currRec.Note
};
return answ;
}
/// <summary>
/// Helper conversione da ItemDTO
/// </summary>
/// <param name="currRec"></param>
/// <param name="isActive"></param>
/// <returns></returns>
public static RawItemModel ConvToModel(ItemDTO currRec, bool isActive)
{
RawItemModel answ = new RawItemModel()
{
RawItemCloudId = currRec.RawItemCloudId,
RawItemId = currRec.RawItemLocalId,
QtyAvail = currRec.QtyAvail,
HMm = currRec.HMm,
LMm = currRec.LMm,
WMm = currRec.WMm,
MatId = currRec.MatLocalId,
IsRemn = currRec.IsRemn,
IsActive = isActive,
Note = currRec.Note
};
return answ;
}
/// <summary>
/// Helper conversione da ResourceExpDTO
/// </summary>
/// <param name="currRec"></param>
/// <param name="matLocalId"></param>
/// <returns></returns>
public static RawItemModel ConvToModel(ResourceExpDTO currRec, int matLocalId)
{
RawItemModel answ = new RawItemModel()
{
RawItemCloudId = currRec.RawItemCloudId,
RawItemId = currRec.RawItemLocalId,
QtyAvail = currRec.Qty,
HMm = currRec.HMm,
LMm = currRec.LMm,
WMm = currRec.WMm,
MatId = matLocalId,
IsRemn = currRec.IsRemn,
IsActive = currRec.IsActive,
Note = currRec.Note
};
return answ;
}
/// <summary>
/// Conversion of base class to DB model class
/// </summary>
/// <param name="coreRec"></param>
/// <returns></returns>
public static RawItemModel ConvToModel(Core.RawPartM coreRec)
{
RawItemModel answ = new RawItemModel();
if (coreRec != null)
{
answ = new RawItemModel()
{
RawItemId = coreRec.nId,
MatId = coreRec.Material.nId,
LMm = (decimal)coreRec.dL,
WMm = (decimal)coreRec.dW,
IsActive = coreRec.bActive,
QtyAvail = coreRec.nQuantity
};
}
return answ;
}
/// <summary>
/// Helper conversione a ResourceDTO
/// </summary>
/// <param name="currRec"></param>
/// <returns></returns>
public static ResourceDTO ConvToResDto(RawItemModel currRec)
{
ResourceDTO answ = new ResourceDTO()
{
RawItemCloudId = currRec.RawItemCloudId,
RawItemLocalId = currRec.RawItemId,
Qty = currRec.QtyAvail
};
return answ;
}
/// <summary>
/// Helper conversione a ResourceDTO con garanzia valori Qty negativi
/// </summary>
/// <param name="currRec"></param>
/// <returns></returns>
public static ResourceDTO ConvToResDtoNeg(RawItemModel currRec)
{
ResourceDTO answ = new ResourceDTO()
{
RawItemCloudId = currRec.RawItemCloudId,
RawItemLocalId = currRec.RawItemId,
Qty = -Math.Abs(currRec.QtyAvail)
};
return answ;
}
/// <summary>
/// Delete by key
/// </summary>
@@ -55,11 +195,23 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
/// <summary>
/// Get record by Key
/// Get record by Key / Core
/// </summary>
/// <param name="RawItemId"></param>
/// <returns></returns>
public RawItemModel FindByDbId(int RawItemId)
public Core.RawPartM FindByDbId(int RawItemId)
{
var rawdata = FindByDbIdModel(RawItemId);
var result = ConvToCore(rawdata);
return result;
}
/// <summary>
/// Get record by Key / Db Model
/// </summary>
/// <param name="RawItemId"></param>
/// <returns></returns>
public RawItemModel FindByDbIdModel(int RawItemId)
{
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
@@ -70,19 +222,31 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
}
/// <summary>
/// Get Material (filtro x MatId) / Core
/// </summary>
/// <param name="MatId">0 = tutti</param>
/// <returns></returns>
public List<Core.RawPartM> GetFilt(int MatId)
{
var rawList = GetFiltModel(MatId);
var result = rawList.Select(x => ConvToCore(x)).ToList();
return result;
}
/// <summary>
/// Get Material (filtro x MatId)
/// </summary>
/// <param name="MatId">0 = tutti</param>
/// <returns></returns>
public List<RawItemModel> GetFilt(int MatId)
public List<RawItemModel> GetFiltModel(int MatId)
{
// retrieve
using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING))
{
return localDbCtx
.RawItemList
.Where(x => MatId==0 || x.MatId== MatId)
.Where(x => MatId == 0 || x.MatId == MatId)
.OrderBy(x => x.LMm)
.ThenBy(x => x.WMm)
.ToList();
@@ -90,7 +254,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers
}
/// <summary>
/// Update or insert Material record
/// Update or insert RawItem record
/// </summary>
/// <param name="updItem"></param>
/// <returns></returns>
@@ -128,6 +292,20 @@ namespace EgtBEAMWALL.DataLayer.Controllers
return fatto;
}
/// <summary>
/// Update or insert RawItem record from CoreM
/// </summary>
/// <param name="coreItem"></param>
/// <returns></returns>
public bool Upsert(Core.RawPartM coreItem)
{
bool fatto = false;
// converto
RawItemModel updItem = ConvToModel(coreItem);
fatto = Upsert(updItem);
return fatto;
}
#endregion Public Methods
#region Private Fields
@@ -31,7 +31,7 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
/// <summary>
/// Codice materiale (Identificativo DB esterno del magazzino in sync)
/// </summary>
public int MatExtId { get; set; } = 0;
public int MatCloudId { get; set; } = 0;
/// <summary>
/// Codice Materiale
@@ -21,6 +21,11 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int RawItemId { get; set; }
/// <summary>
/// Codice RawMat univoco e in sync (Identificativo DB esterno del magazzino in sync)
/// </summary>
public int RawItemCloudId { get; set; } = 0;
/// <summary>
/// ForeignKey Materiale
/// </summary>
@@ -32,10 +37,15 @@ namespace EgtBEAMWALL.DataLayer.DatabaseModels
public int QtyAvail { get; set; } = 0;
/// <summary>
/// Check if is a Remnant
/// Active/ = can be used
/// </summary>
public bool IsActive { get; set; } = false;
/// <summary>
/// Remnant
/// </summary>
public bool IsRemn { get; set; } = false;
/// <summary>
/// Item's Lenght
/// </summary>
@@ -47,7 +47,7 @@
<HintPath>..\ExtLibs\EgtWPFLib5.dll</HintPath>
</Reference>
<Reference Include="EgwProxy.MagMan, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\EgwProxy.MagMan.0.9.2401.2909\lib\EgwProxy.MagMan.dll</HintPath>
<HintPath>..\packages\EgwProxy.MagMan.1.0.2401.3108\lib\EgwProxy.MagMan.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
@@ -146,6 +146,8 @@
</ItemGroup>
<ItemGroup>
<Compile Include="AdminContext.cs" />
<Compile Include="Controllers\MagmanController.cs" />
<Compile Include="Controllers\AliasController.cs" />
<Compile Include="Controllers\RawItemsController.cs" />
<Compile Include="Controllers\MaterialsController.cs" />
<Compile Include="DatabaseModels\AliasModel.cs" />
@@ -216,6 +218,14 @@
<Compile Include="Migrations\202401181534084_AddAliasMaterialRawItemsModel.designer.cs">
<DependentUpon>202401181534084_AddAliasMaterialRawItemsModel.cs</DependentUpon>
</Compile>
<Compile Include="Migrations\202401291722150_FixMatItemCloudId.cs" />
<Compile Include="Migrations\202401291722150_FixMatItemCloudId.designer.cs">
<DependentUpon>202401291722150_FixMatItemCloudId.cs</DependentUpon>
</Compile>
<Compile Include="Migrations\202401310830146_FixItemRemn.cs" />
<Compile Include="Migrations\202401310830146_FixItemRemn.designer.cs">
<DependentUpon>202401310830146_FixItemRemn.cs</DependentUpon>
</Compile>
<Compile Include="Migrations\Configuration.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Utils.cs" />
@@ -267,6 +277,12 @@
<EmbeddedResource Include="Migrations\202401181534084_AddAliasMaterialRawItemsModel.resx">
<DependentUpon>202401181534084_AddAliasMaterialRawItemsModel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Migrations\202401291722150_FixMatItemCloudId.resx">
<DependentUpon>202401291722150_FixMatItemCloudId.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Migrations\202401310830146_FixItemRemn.resx">
<DependentUpon>202401310830146_FixItemRemn.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
@@ -0,0 +1,29 @@
// <auto-generated />
namespace EgtBEAMWALL.DataLayer.Migrations
{
using System.CodeDom.Compiler;
using System.Data.Entity.Migrations;
using System.Data.Entity.Migrations.Infrastructure;
using System.Resources;
[GeneratedCode("EntityFramework.Migrations", "6.4.4")]
public sealed partial class FixMatItemCloudId : IMigrationMetadata
{
private readonly ResourceManager Resources = new ResourceManager(typeof(FixMatItemCloudId));
string IMigrationMetadata.Id
{
get { return "202401291722150_FixMatItemCloudId"; }
}
string IMigrationMetadata.Source
{
get { return null; }
}
string IMigrationMetadata.Target
{
get { return Resources.GetString("Target"); }
}
}
}
@@ -0,0 +1,22 @@
namespace EgtBEAMWALL.DataLayer.Migrations
{
using System;
using System.Data.Entity.Migrations;
public partial class FixMatItemCloudId : DbMigration
{
public override void Up()
{
AddColumn("dbo.MaterialsList", "MatCloudId", c => c.Int(nullable: false));
AddColumn("dbo.RawItemList", "RawItemCloudId", c => c.Int(nullable: false));
DropColumn("dbo.MaterialsList", "MatExtId");
}
public override void Down()
{
AddColumn("dbo.MaterialsList", "MatExtId", c => c.Int(nullable: false));
DropColumn("dbo.RawItemList", "RawItemCloudId");
DropColumn("dbo.MaterialsList", "MatCloudId");
}
}
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,29 @@
// <auto-generated />
namespace EgtBEAMWALL.DataLayer.Migrations
{
using System.CodeDom.Compiler;
using System.Data.Entity.Migrations;
using System.Data.Entity.Migrations.Infrastructure;
using System.Resources;
[GeneratedCode("EntityFramework.Migrations", "6.4.4")]
public sealed partial class FixItemRemn : IMigrationMetadata
{
private readonly ResourceManager Resources = new ResourceManager(typeof(FixItemRemn));
string IMigrationMetadata.Id
{
get { return "202401310830146_FixItemRemn"; }
}
string IMigrationMetadata.Source
{
get { return null; }
}
string IMigrationMetadata.Target
{
get { return Resources.GetString("Target"); }
}
}
}
@@ -0,0 +1,18 @@
namespace EgtBEAMWALL.DataLayer.Migrations
{
using System;
using System.Data.Entity.Migrations;
public partial class FixItemRemn : DbMigration
{
public override void Up()
{
AddColumn("dbo.RawItemList", "IsRemn", c => c.Boolean(nullable: false));
}
public override void Down()
{
DropColumn("dbo.RawItemList", "IsRemn");
}
}
}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -2,7 +2,7 @@
<packages>
<package id="BouncyCastle" version="1.8.5" targetFramework="net472" />
<package id="DotNetZip" version="1.16.0" targetFramework="net472" />
<package id="EgwProxy.MagMan" version="0.9.2401.2909" targetFramework="net472" />
<package id="EgwProxy.MagMan" version="1.0.2401.3108" targetFramework="net472" />
<package id="EntityFramework" version="6.4.4" targetFramework="net452" />
<package id="Google.Protobuf" version="3.21.9" targetFramework="net472" />
<package id="K4os.Compression.LZ4" version="1.3.5" targetFramework="net472" />