Preparata nuova domanda per ricevere i profili degli Element
This commit is contained in:
@@ -32,6 +32,12 @@ namespace WebWindowComplex.Compo
|
||||
[Parameter]
|
||||
public EventCallback<DataUpdateFrame> EC_UpdateFrame { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Evento per richiesta Element
|
||||
/// </summary>
|
||||
[Parameter]
|
||||
public EventCallback<Frame> EC_ReqElement { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Frame corrente
|
||||
/// </summary>
|
||||
@@ -82,6 +88,7 @@ namespace WebWindowComplex.Compo
|
||||
currFrame = CurrFrameWindow,
|
||||
svgNoHw = true
|
||||
};
|
||||
_ = EC_ReqElement.InvokeAsync(CurrFrameWindow);
|
||||
_ = EC_UpdateFrame.InvokeAsync(args);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,11 @@ namespace WebWindowComplex.DTO
|
||||
/// </summary>
|
||||
public Dictionary<int, string> DictOptionsXml { get; set; } = new Dictionary<int, string>();
|
||||
|
||||
/// <summary>
|
||||
/// Dizionario Element
|
||||
/// </summary>
|
||||
public Dictionary<int, string> DictElement { get; set; } = new Dictionary<int, string>();
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Public Methods
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
<CascadingValue Value="m_SplitList" Name="SplitList">
|
||||
<CardFrame EC_ReqResetDict="ReqResetDict"
|
||||
EC_ReqOptionHw="UpdateHwOptionsFrame"
|
||||
EC_ReqElement="UpdateElement"
|
||||
EC_UpdateFrame="UpdatePreviewFrame"
|
||||
EC_ReqClose="ReturnTree">
|
||||
</CardFrame>
|
||||
|
||||
+121
-236
@@ -35,7 +35,12 @@ namespace WebWindowComplex
|
||||
/// <summary>
|
||||
/// Richiesta shape sash group
|
||||
/// </summary>
|
||||
ReqShape
|
||||
ReqShape,
|
||||
|
||||
/// <summary>
|
||||
/// Richiesta element
|
||||
/// </summary>
|
||||
ReqElement
|
||||
}
|
||||
|
||||
#endregion Public Enums
|
||||
@@ -322,224 +327,6 @@ namespace WebWindowComplex
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per popolare i parametri relativi al profilo
|
||||
/// </summary>
|
||||
/// <param name="node"> Area che si considera</param>
|
||||
protected void PopolateParamElement(Area node)
|
||||
{
|
||||
if (node != null)
|
||||
{
|
||||
switch (node.AreaType)
|
||||
{
|
||||
case AreaTypes.FRAME:
|
||||
{
|
||||
Frame frame = (Frame)node;
|
||||
switch (node.AreaList.FirstOrDefault().AreaType)
|
||||
{
|
||||
case AreaTypes.SASH:
|
||||
{
|
||||
frame.ElementDimensionList.FirstOrDefault().SetNameElement("Frame_Sash_Bottom_Dim");
|
||||
for(int i = 1; i <4; i++)
|
||||
frame.ElementDimensionList.ElementAt(i).SetNameElement("Frame_Sash_Top_Dim");
|
||||
foreach(var elem in frame.ElementDimensionList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case AreaTypes.SPLIT:
|
||||
{
|
||||
Split split = (Split)node.AreaList.FirstOrDefault();
|
||||
switch(split.SelSplitShape)
|
||||
{
|
||||
case SplitShapes.VERTICAL:
|
||||
{
|
||||
// in tutte le aree splittate ho ante
|
||||
if (split.OnlySashChild())
|
||||
{
|
||||
frame.ElementDimensionList.ElementAt(0).SetNameElement("Frame_Mixed_Bottom_Dim");
|
||||
frame.ElementDimensionList.ElementAt(1).SetNameElement("Frame_Sash_Top_Dim");
|
||||
frame.ElementDimensionList.ElementAt(2).SetNameElement("Frame_Mixed_Bottom_Dim");
|
||||
frame.ElementDimensionList.ElementAt(3).SetNameElement("Frame_Sash_Top_Dim");
|
||||
foreach (var elem in frame.ElementDimensionList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
}
|
||||
// cambio profilo
|
||||
else if (split.MinOneSashChild())
|
||||
{
|
||||
frame.ElementDimensionList.ElementAt(0).SetNameElement("Frame_Mixed_Bottom_Dim");
|
||||
if(split.AreaList.FirstOrDefault().AreaList.FirstOrDefault().AreaType is AreaTypes.SASH)
|
||||
frame.ElementDimensionList.ElementAt(1).SetNameElement("Frame_Sash_Top_Dim");
|
||||
else
|
||||
frame.ElementDimensionList.ElementAt(1).SetNameElement("Frame_Fixed_Top_Dim");
|
||||
frame.ElementDimensionList.ElementAt(2).SetNameElement("Frame_Mixed_Bottom_Dim");
|
||||
if (split.AreaList.Last().AreaList.FirstOrDefault().AreaType is AreaTypes.SASH)
|
||||
frame.ElementDimensionList.ElementAt(3).SetNameElement("Frame_Sash_Top_Dim");
|
||||
else
|
||||
frame.ElementDimensionList.ElementAt(3).SetNameElement("Frame_Fixed_Top_Dim");
|
||||
foreach (var elem in frame.ElementDimensionList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
}
|
||||
// solo vetri fissi
|
||||
else
|
||||
{
|
||||
frame.ElementDimensionList.ElementAt(0).SetNameElement("Frame_Frame_Split_Dim");
|
||||
frame.ElementDimensionList.ElementAt(1).SetNameElement("Frame_Fixed_Top_Dim");
|
||||
frame.ElementDimensionList.ElementAt(2).SetNameElement("Frame_Frame_Split_Dim");
|
||||
frame.ElementDimensionList.ElementAt(3).SetNameElement("Frame_Fixed_Top_Dim");
|
||||
foreach (var elem in frame.ElementDimensionList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SplitShapes.HORIZONTAL:
|
||||
{
|
||||
// in tutte le aree splittate ho ante
|
||||
if (split.OnlySashChild())
|
||||
{
|
||||
frame.ElementDimensionList.ElementAt(0).SetNameElement("Frame_Sash_Bottom_Dim");
|
||||
frame.ElementDimensionList.ElementAt(1).SetNameElement("Frame_Mixed_Top_Dim");
|
||||
frame.ElementDimensionList.ElementAt(2).SetNameElement("Frame_Sash_Top_Dim");
|
||||
frame.ElementDimensionList.ElementAt(3).SetNameElement("Frame_Mixed_Top_Dim");
|
||||
foreach (var elem in frame.ElementDimensionList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
}
|
||||
// cambio profilo
|
||||
else if (split.MinOneSashChild())
|
||||
{
|
||||
if (split.AreaList.FirstOrDefault().AreaList.FirstOrDefault().AreaType is AreaTypes.SASH)
|
||||
frame.ElementDimensionList.ElementAt(0).SetNameElement("Frame_Sash_Bottom_Dim");
|
||||
else
|
||||
frame.ElementDimensionList.ElementAt(0).SetNameElement("Frame_Fixed_Bottom_Dim");
|
||||
frame.ElementDimensionList.ElementAt(1).SetNameElement("Frame_Mixed_Top_Dim");
|
||||
if (split.AreaList.ElementAt(2).AreaList.FirstOrDefault().AreaType is AreaTypes.SASH)
|
||||
frame.ElementDimensionList.ElementAt(2).SetNameElement("Frame_Sash_Top_Dim");
|
||||
else
|
||||
frame.ElementDimensionList.ElementAt(2).SetNameElement("Frame_Fixed_Top_Dim");
|
||||
frame.ElementDimensionList.ElementAt(3).SetNameElement("Frame_Mixed_Top_Dim");
|
||||
foreach (var elem in frame.ElementDimensionList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
}
|
||||
// solo vetri fissi
|
||||
else
|
||||
{
|
||||
frame.ElementDimensionList.ElementAt(0).SetNameElement("Frame_Fixed_Top_Dim");
|
||||
frame.ElementDimensionList.ElementAt(1).SetNameElement("Frame_Frame_Split_Dim");
|
||||
frame.ElementDimensionList.ElementAt(2).SetNameElement("Frame_Fixed_Top_Dim");
|
||||
frame.ElementDimensionList.ElementAt(3).SetNameElement("Frame_Frame_Split_Dim");
|
||||
foreach (var elem in frame.ElementDimensionList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SplitShapes.GRID:
|
||||
{
|
||||
for (int i = 0; i < 4; i++)
|
||||
frame.ElementDimensionList.ElementAt(i).SetNameElement("Frame_Frame_Split_Dim");
|
||||
foreach (var elem in frame.ElementDimensionList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case AreaTypes.SASH:
|
||||
{
|
||||
|
||||
break;
|
||||
}
|
||||
case AreaTypes.SPLIT:
|
||||
{
|
||||
Split split = (Split)node;
|
||||
switch (split.ParentArea.AreaType)
|
||||
{
|
||||
case AreaTypes.SASH:
|
||||
{
|
||||
for (int i = 0; i < split.ElemDimVertList.Count - 1; i++)
|
||||
split.ElemDimVertList.ElementAt(i).SetNameElement("Sash_Sash_Split_Dim");
|
||||
for (int i = 0; i < split.ElemDimHorizList.Count - 1; i++)
|
||||
split.ElemDimHorizList.ElementAt(i).SetNameElement("Sash_Sash_Split_Dim");
|
||||
foreach (var elem in split.ElemDimVertList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
foreach (var elem in split.ElemDimHorizList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case AreaTypes.FRAME:
|
||||
{
|
||||
if (split.MinOneSashChild())
|
||||
{
|
||||
for (int i = 0; i < split.ElemDimVertList.Count - 1; i++)
|
||||
split.ElemDimVertList.ElementAt(i).SetNameElement("Frame_Mixed_Split_Dim");
|
||||
for (int i = 0; i < split.ElemDimHorizList.Count - 1; i++)
|
||||
split.ElemDimHorizList.ElementAt(i).SetNameElement("Frame_Mixed_Split_Dim");
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < split.ElemDimVertList.Count - 1; i++)
|
||||
split.ElemDimVertList.ElementAt(i).SetNameElement("Frame_Frame_Split_Dim");
|
||||
for (int i = 0; i < split.ElemDimHorizList.Count - 1; i++)
|
||||
split.ElemDimHorizList.ElementAt(i).SetNameElement("Frame_Frame_Split_Dim");
|
||||
}
|
||||
foreach (var elem in split.ElemDimVertList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
foreach (var elem in split.ElemDimHorizList)
|
||||
{
|
||||
elem.SetMinDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Min"));
|
||||
elem.SetMaxDimension(Window.m_ParameterList.GetValueOrDefault(elem.sName + "Max"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
foreach (var item in node.AreaList)
|
||||
{
|
||||
PopolateParamElement(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per riempire le liste Sash, Split, Splitted e Fill
|
||||
/// </summary>
|
||||
@@ -701,6 +488,35 @@ namespace WebWindowComplex
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Richiesta Profili Element da JWD
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected async Task DoReqElement(List<int> groupIdList)
|
||||
{
|
||||
if (m_CurrWindow != null)
|
||||
{
|
||||
#if DEBUG
|
||||
var CurrJwd = JsonConvert.SerializeObject(m_CurrWindow.Serialize(), Formatting.Indented);
|
||||
#else
|
||||
var CurrJwd = JsonConvert.SerializeObject(m_CurrWindow.Serialize());
|
||||
#endif
|
||||
// verifico variazione JWD
|
||||
if (!prevJwd.Equals(CurrJwd) || prevReq != (int)DataReq.ReqElement)
|
||||
{
|
||||
prevJwd = CurrJwd;
|
||||
prevReq = (int)DataReq.ReqElement;
|
||||
Dictionary<string, string> Args = new Dictionary<string, string>();
|
||||
Args.Add("Mode", $"{(int)Enums.QuestionModes.HARDWARE}");
|
||||
Args.Add("SubMode", $"{(int)Enums.QuestionHwSubModes.PROFILEDATAFROMAREA}");
|
||||
Args.Add("SerializedData", CurrJwd);
|
||||
string listGroupId = JsonConvert.SerializeObject(groupIdList);
|
||||
Args.Add("GroupId", listGroupId);
|
||||
await EC_DoUpdate.InvokeAsync(Args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo di reset
|
||||
/// </summary>
|
||||
@@ -765,7 +581,6 @@ namespace WebWindowComplex
|
||||
DictShape = LiveData.DictShape,
|
||||
SvgPreview = LiveData.SvgPreview
|
||||
};
|
||||
|
||||
// Aggiornati parametri di ingresso selezionati
|
||||
UpdateSelParameter();
|
||||
// provo a deserializzare SE necessario
|
||||
@@ -847,14 +662,12 @@ namespace WebWindowComplex
|
||||
List<int> reqList = SashList.Select(x => x.GroupId).ToList();
|
||||
if (reqList.Count > 0)
|
||||
{
|
||||
//prevReq = (int)DataReq.ReqShape;
|
||||
await DoReqShape(reqList);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// chiedo SVG
|
||||
//prevReq = (int)DataReq.ReqSvg;
|
||||
if (prevReq != (int)DataReq.ReqSvg || !prevLiveData.JwdEqual(LiveData.CurrJwd))
|
||||
{
|
||||
if (prevReq != (int)DataReq.ReqHwOpt)
|
||||
@@ -947,6 +760,14 @@ namespace WebWindowComplex
|
||||
}
|
||||
}
|
||||
}
|
||||
if(LiveData.DictElement.Count > 0)
|
||||
{
|
||||
// Inserisco i profili ricevuti nei rispettivi Element
|
||||
foreach (var item in LiveData.DictElement)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -954,7 +775,6 @@ namespace WebWindowComplex
|
||||
/// </summary>
|
||||
protected void UpdateLists()
|
||||
{
|
||||
PopolateParamElement((m_CurrWindow!).AreaList.First());
|
||||
m_maxCol = 0;
|
||||
m_maxRow = 0;
|
||||
m_FillList = new List<Fill>();
|
||||
@@ -999,24 +819,17 @@ namespace WebWindowComplex
|
||||
#region Private Fields
|
||||
|
||||
private int currAntaIndex = 0;
|
||||
|
||||
private int currFillIndex = -1;
|
||||
|
||||
private int currSashIndex = -1;
|
||||
|
||||
private int currSplitIndex = -1;
|
||||
|
||||
private CompileStep currStep;
|
||||
|
||||
private bool editLock = false;
|
||||
|
||||
private bool firstDisplay = true;
|
||||
|
||||
/// <summary>
|
||||
/// Booleana fase loading
|
||||
/// </summary>
|
||||
private bool isLoading = false;
|
||||
|
||||
private bool isRendered = false;
|
||||
|
||||
/// <summary>
|
||||
@@ -1034,7 +847,6 @@ namespace WebWindowComplex
|
||||
/// </summary>
|
||||
private Dictionary<string, string> listWarnings = new Dictionary<string, string>();
|
||||
|
||||
private List<Fill> m_FillList = new List<Fill>();
|
||||
|
||||
private Frame? m_Frame;
|
||||
|
||||
@@ -1045,9 +857,8 @@ namespace WebWindowComplex
|
||||
private int m_maxRow = 0;
|
||||
|
||||
private List<Sash> m_SashList = new List<Sash>();
|
||||
|
||||
private List<Split> m_SplitList = new List<Split>();
|
||||
|
||||
private List<Fill> m_FillList = new List<Fill>();
|
||||
private List<Splitted> m_SplittedList = new List<Splitted>();
|
||||
|
||||
#endregion Private Fields
|
||||
@@ -1238,6 +1049,13 @@ namespace WebWindowComplex
|
||||
AdvStep(CompileStep.Tree);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per cercare un area precisa
|
||||
/// </summary>
|
||||
/// <param name="currentArea"> Area che si sta analizzando </param>
|
||||
/// <param name="idSearch"> Id Area che si sta cercando </param>
|
||||
/// <param name="itemSearch"> Area che si sta cercando </param>
|
||||
/// <returns></returns>
|
||||
private Area SearchArea(Area currentArea, int idSearch, Area itemSearch)
|
||||
{
|
||||
if (currentArea.GroupId == idSearch && currentArea.AreaType.Equals(itemSearch.AreaType))
|
||||
@@ -1255,6 +1073,47 @@ namespace WebWindowComplex
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per cercare un area precisa
|
||||
/// </summary>
|
||||
/// <param name="currentArea"> Area che si sta analizzando </param>
|
||||
/// <param name="idSearch"> Id Area che si sta cercando </param>
|
||||
/// <param name="index"> Indice che si sta cercando </param>
|
||||
/// <returns></returns>
|
||||
private Area UpdateIdElement(Area currentArea, int idSearch, int index)
|
||||
{
|
||||
switch (currentArea.AreaType)
|
||||
{
|
||||
case AreaTypes.FRAME:
|
||||
{
|
||||
Frame frame = (Frame)currentArea;
|
||||
foreach(var item in frame.ElementDimensionList)
|
||||
{
|
||||
//if(item.nIndex == index)
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
case AreaTypes.SASH:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case AreaTypes.SPLIT:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
foreach (Area child in currentArea.AreaList)
|
||||
{
|
||||
Area found = UpdateIdElement(child, idSearch, index);
|
||||
if (found != null)
|
||||
{
|
||||
return found;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Metodo per aggiornare valori della sezione General
|
||||
/// </summary>
|
||||
@@ -1405,6 +1264,35 @@ namespace WebWindowComplex
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Aggiornamento Element della Window
|
||||
/// </summary>
|
||||
/// <param name="newFrame"> nuovo frame </param>
|
||||
/// <returns></returns>
|
||||
private async Task UpdateElement(Frame newFrame)
|
||||
{
|
||||
if (newFrame != null)
|
||||
{
|
||||
// cerco il record
|
||||
var currRec = m_CurrWindow.AreaList.FirstOrDefault(x => x.GroupId == newFrame.GroupId);
|
||||
// lo aggiorno
|
||||
currRec = newFrame;
|
||||
// richiedo update element del frame
|
||||
List<int> reqList = new List<int>();
|
||||
reqList.Add(FrameWindow.GroupId);
|
||||
// richiedo update element della sash (se presente)
|
||||
if(SashList.Count > 0)
|
||||
{
|
||||
foreach(var item in SashList)
|
||||
{
|
||||
reqList.Add(item.GroupId);
|
||||
}
|
||||
}
|
||||
if (prevReq == (int)DataReq.ReqElement)
|
||||
await DoReqElement(reqList);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Aggiornamento opzioni data nuova sash group
|
||||
/// </summary>
|
||||
@@ -1420,9 +1308,6 @@ namespace WebWindowComplex
|
||||
currRec = newSash;
|
||||
// resetto hw lst
|
||||
await EC_ActionReq.InvokeAsync(DataAction.ResetHwOpt);
|
||||
//reqHwOpt++;
|
||||
//if(prevReq == (int)DataReq.ReqShape)
|
||||
//{
|
||||
// richiesta calcolo opzioni hardware per la singola sash group
|
||||
List<int> reqList = SashList.Select(x => x.GroupId).ToList();
|
||||
// chiamo con gruppo della nuova sash
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Version>2.8.1.2309</Version>
|
||||
<Version>2.8.1.2609</Version>
|
||||
<Authors>Annamaria Sassi</Authors>
|
||||
<Company>Egalware</Company>
|
||||
<Description>Componente gestione Configurazioni avanzate Window per LUX</Description>
|
||||
@@ -75,6 +75,12 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user