Modifiche utente base (solo in view)

This commit is contained in:
Annamaria Sassi
2026-08-13 11:10:50 +02:00
parent 9e8e02d75b
commit c0b8bc752c
22 changed files with 478 additions and 327 deletions
+1 -1
View File
@@ -5,7 +5,7 @@
<WebWindowComplex.TableComp ListPayload="SetupList"
LiveData="CurrData"
baseUser="User"
BaseUser="User"
EC_ActionReq="DoAction"
EC_DoUpdate="ExecRequest"
EC_OnClose="CloseObj">
+1 -1
View File
@@ -72,7 +72,7 @@
<WebWindowComplex.TableComp ListPayload="SetupList"
LiveData="CurrData"
PendReq="DictPendReq"
baseUser="User"
BaseUser="true"
Vocabulary="TradVocabulary"
EC_ActionReq="DoAction"
EC_DoUpdate="ExecRequest"
+1 -1
View File
@@ -10,7 +10,7 @@
<WebWindowComplex.TableComp ListPayload="SetupList"
LiveData="CurrData"
baseUser="User"
BaseUser="User"
EC_ActionReq="DoAction"
EC_DoUpdate="ExecRequest"
EC_OnClose="CloseObj">
@@ -71,6 +71,11 @@ namespace WebWindowComplex.Compo
return EC_AddInglesina.InvokeAsync(true);
}
/// <summary>
/// Metodo per traduzione in lingua corrente
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
private string Traduci(string lemma)
{
string ans = lemma;
+147 -57
View File
@@ -46,8 +46,13 @@
<div class="input-group mb-2">
@if (User)
{
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrSashDim.OpeningTypeList.ElementAt(OpeningTypeIndex - 1))">
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
type="button"
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");" >
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageOpeningPath(CurrOpening)" title="@(CurrOpening)" width="50" />
</span>
</button>
}
else
{
@@ -85,40 +90,73 @@
<div class="col-lg-5 col-md-12 my-2">
<div class="input-group mb-2">
<span class="input-group-text">Dimension</span>
<input type="number" class="form-control" @bind="@Dimension">
@* <InputDouble CssClass="form-control form-control text-end" Decimals="@CssDecimals()" Step="@CssStepNumber()" @bind-Value="@Dimension"></InputDouble> *@
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
@foreach (var mType in CurrSashDim.MeasureTypeList)
@if(User)
{
<input type="number" readonly class="form-control" value="@Dimension">
@switch (CurrSashDim.SelMeasureType.ToString())
{
<option value=@(mType.Id)>
@switch (mType.Name)
case "ABSOLUTE":
{
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
<span class="input-group-text">mm</span>
break;
}
case "PROPORTIONAL":
{
<span class="input-group-text">*</span>
break;
}
case "PERCENTAGE":
{
<span class="input-group-text">%</span>
break;
}
</option>
}
</select>
}
else
{
<input type="number" class="form-control" @bind="@Dimension">
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
@foreach (var mType in CurrSashDim.MeasureTypeList)
{
<option value=@(mType.Id)>
@switch (mType.Name)
{
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
}
</option>
}
</select>
}
</div>
</div>
<div class="col-lg-2 col-md-12 my-2">
<div class="d-flex justify-content-start fs-5 mb-2">
<div class="px-1">
<input class="form-check-input ml-auto" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
</div>
@if (User)
{
<div class="px-1">
<input class="form-check-input ml-auto" disabled="disabled" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle">
</div>
}
else
{
<div class="px-1">
<input class="form-check-input ml-auto" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
</div>
}
<div class="px-2">
<label class="form-check-label fs-6 text-dark">Handle</label>
</div>
@@ -157,8 +195,13 @@
<div class="input-group mb-2">
@if (User)
{
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrSashDim.OpeningTypeList.ElementAt(OpeningTypeIndex - 1))">
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
type="button"
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");">
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageOpeningPath(CurrOpening)" title="@(CurrOpening)" width="50" />
</span>
</button>
}
else
{
@@ -194,40 +237,73 @@
<div class="col-lg-5 col-md-12 my-2">
<div class="input-group mb-2">
<span class="input-group-text">Dimension</span>
<input type="number" class="form-control" @bind="@Dimension">
@* <InputDouble CssClass="form-control form-control text-end" Decimals="@CssDecimals()" Step="@CssStepNumber()" @bind-Value="@Dimension"></InputDouble> *@
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
@foreach (var mType in CurrSashDim.MeasureTypeList)
@if(User)
{
<input type="number" readonly class="form-control" value="@Dimension">
@switch (CurrSashDim.SelMeasureType.ToString())
{
<option value=@(mType.Id)>
@switch (mType.Name)
case "ABSOLUTE":
{
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
<span class="input-group-text">mm</span>
break;
}
case "PROPORTIONAL":
{
<span class="input-group-text">*</span>
break;
}
case "PERCENTAGE":
{
<span class="input-group-text">%</span>
break;
}
</option>
}
</select>
}
else
{
<input type="number" class="form-control" @bind="@Dimension">
<select class="form-select" style="max-width:6rem; background-color:#e9ecef" @bind="@MeasureTypeIndex">
@foreach (var mType in CurrSashDim.MeasureTypeList)
{
<option value=@(mType.Id)>
@switch (mType.Name)
{
case "Absolute":
{
<span class="input-group-text">mm</span>
break;
}
case "Proportional":
{
<span class="input-group-text">*</span>
break;
}
case "Percentage":
{
<span class="input-group-text">%</span>
break;
}
}
</option>
}
</select>
}
</div>
</div>
<div class="col-lg-2 col-md-12 my-2">
<div class="d-flex justify-content-start fs-5 mb-2">
<div class="px-1">
<input class="form-check-input ml-auto" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
</div>
@if(User)
{
<div class="px-1">
<input class="form-check-input ml-auto" disabled="disabled" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle">
</div>
}
else
{
<div class="px-1">
<input class="form-check-input ml-auto" type="checkbox" name="Handle" checked="@CurrSashDim.bHasHandle" @onclick="() => ChangeHandle()">
</div>
}
<div class="px-2">
<label class="form-check-label fs-6 text-dark">Handle</label>
</div>
@@ -240,7 +316,21 @@
<div class="col-md-4 d-flex justify-content-start align-items-center">
<h6>Joints</h6>
</div>
@if (!User)
@if (User)
{
<div class="col-md-8 d-flex justify-content-end align-items-center">
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Angled")" title="Angled" width="40" />
</button>
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.FULL_H) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Full H")" title="Angled" width="40" />
</button>
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.FULL_V) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Full V")" title="Angled" width="40" />
</button>
</div>
}
else
{
<div class="col-md-8 d-flex justify-content-end align-items-center">
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED)">
+30 -4
View File
@@ -16,9 +16,21 @@
<div class="col-md-12 col-lg-12">
@if (User)
{
<div class="input-group mt-2">
<span class="input-group-text">Shape</span>
<input type="text" readonly class="form-control" value="@(CurrFrameWindow.ShapeList.ElementAt(SelShapeIndex - 1))">
<div class="row">
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">@Traduci("ConfWind_Shape")</h6>
</div>
@* <input type="text" readonly class="form-control" value="@(CurrFrameWindow.ShapeList.ElementAt(SelShapeIndex - 1))"> *@
<div class="row">
@foreach (var i in CurrFrameWindow.ShapeList)
{
<div class="col-auto">
<button type="button" class="btn-iconeOff @ButtonShapeCss(i.Id) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageFrameShapePath(i.Name)" title="@(i.Name)" width="40" />
</button>
</div>
}
</div>
</div>
}
else
@@ -109,7 +121,21 @@
<div class="col-md-4 d-flex justify-content-start align-items-center">
<h6 class="fw-bold">@Traduci("ConfWind_Joints")</h6>
</div>
@if (!User)
@if (User)
{
<div class="col-md-8 d-flex justify-content-end align-items-center">
<button type="button" class="btn-iconeOff @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Angled")" title="Angled" width="40" />
</button>
<button type="button" class="btn-iconeOff @ButtonJointCss(Json.WindowConst.Joints.FULL_H) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Full H")" title="Full H" width="40" />
</button>
<button type="button" class="btn-iconeOff @ButtonJointCss(Json.WindowConst.Joints.FULL_V) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageJointShapePath("Full V")" title="Full V" width="40" />
</button>
</div>
}
else
{
<div class="col-md-8 d-flex justify-content-end align-items-center">
<button type="button" class="btn-icone @ButtonJointCss(Json.WindowConst.Joints.ANGLED) mx-1 px-1 py-1" @onclick="() => ChangeAllJoints(WebWindowComplex.Json.WindowConst.Joints.ANGLED)">
@@ -412,6 +412,11 @@ namespace WebWindowComplex.Compo
return "col-md-12 col-lg-4";
}
/// <summary>
/// Metodo per traduzione in lingua corrente
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
private string Traduci(string lemma)
{
string ans = lemma;
@@ -39,3 +39,31 @@
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
transition: transform 0.05s ease, box-shadow 0.05s ease;
}
/* Stato Normale (Non Attivo) */
.btn-iconeOff {
background-color: #ffffff;
border: 2px solid #d1d5db; /* Bordo grigio tenue di media visibilità */
box-shadow: 0 4px 12px rgba(212, 230, 250, 0.8); /* Ombra azzurra delicata */
font-weight: 600;
padding: 10px 22px;
border-radius: 8px;
cursor: pointer;
transition: transform 0.2s ease, background-color 0.2s ease, border 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}
/* Stato Attivo (Selezionato) */
.btn-iconeOff.active {
background-color: #ffffff; /* Sfondo bianco */
border: 3px solid #a6ccf5; /* Bordo azzurro */
box-shadow: 0 2px 8px rgba(2, 132, 199, 0.2);
}
/* Effetto Pressione al Click (Mouse premuto) */
.btn-iconeOff:active,
.btn-iconeOff.active:active {
transform: scale(0.96) translateY(2px);
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
transition: transform 0.05s ease, box-shadow 0.05s ease;
}
+13 -15
View File
@@ -23,30 +23,28 @@
<div class="card-body py-2">
<div class="row pb-3">
<div class="col-md-12 col-lg-6">
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">Tipology</h6>
</div>
@if (User)
{
<div class="input-group mb-2">
<span class="input-group-text">Tipology</span>
<input type="text" readonly class="form-control" value="@(CurrSashGroup.OrientationSashTypeList.FirstOrDefault(x => x.Id == OrientationSashTypeIndex).Name)">
<div class="row">
@foreach (var i in CurrSashGroup.OrientationSashTypeList)
{
<div class="col-auto">
<button type="button"
class="btn-iconeOff @ButtonTipologyCss(i.Id) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageTipologyPath(i.Name)" title="@(i.Name)" width="40" />
</button>
</div>
}
</div>
}
else
{
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">Tipology</h6>
</div>
<div class="row">
@foreach (var i in CurrSashGroup.OrientationSashTypeList)
{
@* <div class="col-auto">
<button type="button" @onclick="() => SelTipologySash(i.Id)"
class="btn mx-1 px-1 py-1"
style="border-width: @(OrientationSashTypeIndex == i.Id ? 4 : 1)px;
border-style: solid;
border-color: @(OrientationSashTypeIndex == i.Id ? "#0d6efd" : "#dee2e6");">
<img class="img-fluid" src="@GetImageTipologyPath(i.Name)" title="@(i.Name)" width="40" />
</button>
</div> *@
<div class="col-auto">
<button type="button"
class="btn-icone @ButtonTipologyCss(i.Id) mx-1 px-1 py-1" @onclick="() => SelTipologySash(i.Id)">
+2 -93
View File
@@ -166,18 +166,6 @@ namespace WebWindowComplex.Compo
private int OrientationSashTypeIndex
{
get => CurrSashGroup.SelOrientationSashTypeIndex;
//set
//{
// if (CurrSashGroup.SelOrientationSashTypeIndex != value)
// {
// CurrSashGroup.SelOrientationSashTypeIndex = value;
// var args = new DataUpdateSash()
// {
// currSash = CurrSashGroup
// };
// _ = EC_UpdateSashGroup.InvokeAsync(args);
// }
//}
}
/// <summary>
@@ -208,7 +196,7 @@ namespace WebWindowComplex.Compo
/// </summary>
private string SelHwType
{
get => CurrSashGroup.SelHardwareFromId;
get => CurrSashGroup.SelHardware.Description;
set
{
if (CurrSashGroup.SelHardwareFromId != value)
@@ -342,62 +330,6 @@ namespace WebWindowComplex.Compo
await EC_ReqClose.InvokeAsync(true);
}
/// <summary>
/// Metodo per cambiare dimensione solo luce
/// </summary>
/// <returns></returns>
private Task ChangeTypeDimension(bool type)
{
if (CurrSashGroup.bIsDimensionLight != type)
{
CurrSashGroup.bIsDimensionLight = type;
foreach (var CurrSashDim in CurrSashGroup.SashList)
{
if (CurrSashDim.SelMeasureType is MeasureTypes.ABSOLUTE)
{
if (CurrSashGroup.bIsDimensionLight)
{
CurrSashDim.SetDimensionLight(CurrSashDim.dDimension -
CurrSashDim.ElementDimensionList.ElementAt(1).dDimension -
CurrSashDim.ElementDimensionList.Last().dDimension);
}
else
{
CurrSashDim.SetDimensionLight(CurrSashDim.dDimension +
CurrSashDim.ElementDimensionList.ElementAt(1).dDimension +
CurrSashDim.ElementDimensionList.Last().dDimension);
}
}
}
}
DataUpdateSash args = new DataUpdateSash()
{
currSash = CurrSashGroup,
noSvg = false
};
return EC_UpdateSashGroup.InvokeAsync(args);
}
/// <summary>
/// Metodo per scegliere tipo di misura
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
//protected Task SetMeasureType(MeasureTypes type)
//{
// //isOpen = !isOpen;
// for (int i = 0; i < CurrSashGroup.SashList.Count; i++)
// {
// CurrSashGroup.SashList.ElementAt(i).SelMeasureTypeIndex = (int)type;
// }
// var args = new DataUpdateSash
// {
// currSash = CurrSashGroup,
// noSvg = true
// };
// return EC_UpdateSashGroup.InvokeAsync(args);
//}
/// <summary>
/// Metodo per aggiornare la sash dimension
/// </summary>
@@ -547,12 +479,6 @@ namespace WebWindowComplex.Compo
return EC_ReqFirstOptionHw.InvokeAsync(CurrSashGroup);
}
//private bool isOpen = false;
//private void ToggleDropdown()
//{
// isOpen = !isOpen;
//}
private string AreaSashCss(int i)
{
if (i == 0)
@@ -561,28 +487,11 @@ namespace WebWindowComplex.Compo
return "row mt-2";
}
private string MeasureTypeCss(MeasureTypes type)
{
for (int i = 0; i < CurrSashGroup.SashList.Count; i++)
{
if (!CurrSashGroup.SashList.ElementAt(i).MeasureType.Equals(type))
return "dropdown-item";
}
return "dropdown-item fw-bold";
}
private string TypeDimensionCss(bool type)
{
if(CurrSashGroup.bIsDimensionLight && type)
return "dropdown-item fw-bold";
else if(!CurrSashGroup.bIsDimensionLight && !type)
return "dropdown-item fw-bold";
return "dropdown-item";
}
private string GetCurrOpening(SashDimension currSashDim)
{
return currSashDim.OpeningTypeList.FirstOrDefault(x => x.Id == currSashDim.SelOpeningTypeIndex).Name;
}
#endregion Private Methods
}
@@ -39,3 +39,31 @@
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
transition: transform 0.05s ease, box-shadow 0.05s ease;
}
/* Stato Normale (Non Attivo) */
.btn-iconeOff {
background-color: #ffffff;
border: 2px solid #d1d5db; /* Bordo grigio tenue di media visibilità */
box-shadow: 0 4px 12px rgba(212, 230, 250, 0.8); /* Ombra azzurra delicata */
font-weight: 600;
padding: 10px 22px;
border-radius: 8px;
cursor: pointer;
transition: transform 0.2s ease, background-color 0.2s ease, border 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}
/* Stato Attivo (Selezionato) */
.btn-iconeOff.active {
background-color: #ffffff; /* Sfondo bianco */
border: 3px solid #a6ccf5; /* Bordo azzurro */
box-shadow: 0 2px 8px rgba(2, 132, 199, 0.2);
}
/* Effetto Pressione al Click (Mouse premuto) */
.btn-iconeOff:active,
.btn-iconeOff.active:active {
transform: scale(0.96) translateY(2px);
box-shadow: 0 2px 4px rgba(212, 230, 250, 0.15);
transition: transform 0.05s ease, box-shadow 0.05s ease;
}
+27 -29
View File
@@ -7,7 +7,7 @@
<h5>@(descParentSplit()) - Split</h5>
</div>
<div class="col-md-3">
@if (!User)
@if (!BaseUser)
{
@if ((CurrSplit.nSplitQtyVert == 1 && CurrSplit.nSplitQtyHoriz == 0) || (CurrSplit.nSplitQtyVert == 0 && CurrSplit.nSplitQtyHoriz == 1))
{
@@ -16,7 +16,7 @@
}
</div>
<div class="col-md-3">
@if (!User)
@if (!BaseUser)
{
<button class="btn btn-outline-secondary btn-sm" @onclick="() => RemoveArea()">Remove split</button>
}
@@ -43,30 +43,36 @@
</div>
<div class="row py-2">
<div class="col-md-12 col-lg-12">
@if (User)
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">Shape</h6>
</div>
@if (BaseUser)
{
<div class="input-group mb-2">
<span class="input-group-text">Shape</span>
<input type="text" readonly class="form-control" value="@(CurrSplit.SplitShapeList.FirstOrDefault(x => x.Id == SplitShapeIndex))">
@foreach (var i in CurrSplit.SplitShapeList)
{
<div class="col-auto">
<button type="button" class="btn-icone @ButtonShapeCss(i.Id) mx-1 px-1 py-1">
<img class="img-fluid" src="@GetImageShapePath(i.Name)" title="@(i.Name)" width="40" />
</button>
</div>
}
<div class="col-auto">
@if (CurrSplit.SelSplitShape == Json.WindowConst.SplitShapes.GRID)
{
<div class="px-1">
<input class="form-check-input ml-auto me-1" disabled="disabled" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert">
<label class="form-check-label fs-6 text-dark">StartVert</label>
</div>
}
</div>
</div>
}
else
{
<div class="d-flex justify-content-start align-items-center" style="min-height: 2.5rem;">
<h6 class="fw-bold">Shape</h6>
</div>
<div class="row align-items-center">
@foreach (var i in CurrSplit.SplitShapeList)
{
@* <div class="col-auto">
<button type="button" @onclick="() => SelShapeSplit(i.Id)"
class="btn mx-1 px-1 py-1"
style="border-width: @(SplitShapeIndex == i.Id ? 4 : 1)px;
border-style: solid;
border-color: @(SplitShapeIndex == i.Id ? "#0d6efd" : "#dee2e6");">
<img class="img-fluid" src="@GetImageShapePath(i.Name)" title="@(i.Name)" width="40" />
</button>
</div> *@
<div class="col-auto">
<button type="button" class="btn-icone @ButtonShapeCss(i.Id) mx-1 px-1 py-1" @onclick="() => SelShapeSplit(i.Id)">
<img class="img-fluid" src="@GetImageShapePath(i.Name)" title="@(i.Name)" width="40" />
@@ -77,16 +83,8 @@
@if (CurrSplit.SelSplitShape == Json.WindowConst.SplitShapes.GRID)
{
<div class="px-1">
@if (User)
{
<input class="form-check-input ml-auto me-1" disabled="disabled" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert">
<label class="form-check-label fs-6 text-dark">StartVert</label>
}
else
{
<input class="form-check-input ml-auto me-1" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert" @oninput="(ChangeEventArgs e) => ChangeStartVert(e)">
<label class="form-check-label fs-6 text-dark">StartVert</label>
}
<input class="form-check-input ml-auto me-1" type="checkbox" name="SplitStartVert" checked="@CurrSplit.bSplitStartVert" @oninput="(ChangeEventArgs e) => ChangeStartVert(e)">
<label class="form-check-label fs-6 text-dark">StartVert</label>
</div>
}
</div>
@@ -104,7 +102,7 @@
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">QtyHoriz</span>
@if (User)
@if (BaseUser)
{
<input type="number" readonly class="form-control" value="@SplitQtyHoriz">
}
@@ -148,7 +146,7 @@
<div class="col-md-12 col-lg-6">
<div class="input-group mb-2">
<span class="input-group-text">QtyVert</span>
@if (User)
@if (BaseUser)
{
<input type="number" readonly class="form-control" value="@SplitQtyVert">
}
+1 -1
View File
@@ -37,7 +37,7 @@ namespace WebWindowComplex.Compo
/// Livello di accesso (utente base)
/// </summary>
[CascadingParameter(Name = "User")]
public bool User { get; set; } = false!;
public bool BaseUser { get; set; } = false!;
/// <summary>
/// Evento per richiedere reset dizionario
+54 -60
View File
@@ -57,7 +57,6 @@
s = s + cs.ToString() + ((ind + 1) > 0 ? (ind + 1) : "");
}
<td colspan="2">
@* <div class="d-flex flex-row align-items-center justify-content-center">*@
<div class="card text-center p-1 shadow-sm hover-shadow w-100">
<div class="d-flex gap-2">
<button class="btn btn-sm btn-rounded flex-grow-1" @onclick="() => RaiseNextStep(cs, ind)" title="@(s)"
@@ -71,87 +70,82 @@
<i class="@hwIcon(ItemTableList[i].Row)" style="width:0.5rem;"></i>
</button>
}
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.SASH ||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.SPLIT ||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.INGLESINA)
@if(!BaseUser)
{
<button class="btn btn-sm" style="font-size: 1rem; flex-basis: 20%;" @onclick="() => Remove(cs, ind)" title="Remove">
<i class="fa-solid fa-trash"></i>
</button>
}
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FRAME &&
((SashGroupList.Count == 0 && SplitList.Count == 0) || !(FrameWindow.AreaList.First() is Split)))
{
<div class="dropdown px-4">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="ToggleDropdownFrame">
<i class="fa-solid fa-plus"></i>
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.SASH ||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.SPLIT ||
ItemTableList[i].Type is Json.WindowConst.AreaTypes.INGLESINA)
{
<button class="btn btn-sm" style="font-size: 1rem; flex-basis: 20%;" @onclick="() => Remove(cs, ind)" title="Remove">
<i class="fa-solid fa-trash"></i>
</button>
<ul class="dropdown-menu @(isOpenFrame ? "show" : "")" style="min-width:5rem; max-width:10rem">
@if(SashGroupList.Count == 0 && SplitList.Count == 0)
{
<li><button class="dropdown-item" @onclick="RaiseAddSash">Sash</button></li>
}
@if (!(FrameWindow.AreaList.First() is Split))
{
<li><button class="dropdown-item" @onclick="RaiseAddSplit">Split</button></li>
}
</ul>
</div>
}
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FILL)
{
int currIndexFill = ItemTableList[i].IndexItem;
if (FillList.ElementAt(currIndexFill).ParentArea is Frame)
}
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FRAME &&
((SashGroupList.Count == 0 && SplitList.Count == 0) || !(FrameWindow.AreaList.First() is Split)))
{
<div class="dropdown px-4">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="ToggleDropdownFrame">
<i class="fa-solid fa-plus"></i>
</button>
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
<ul class="dropdown-menu @(isOpenFrame ? "show" : "")" style="min-width:5rem; max-width:10rem">
@if (SashGroupList.Count == 0 && SplitList.Count == 0)
{
<li><button class="dropdown-item" @onclick="RaiseAddSash">Sash</button></li>
}
@if (!(FrameWindow.AreaList.First() is Split))
{
<li><button class="dropdown-item" @onclick="RaiseAddSplit">Split</button></li>
}
</ul>
</div>
}
else if (SplittedList != null && SplittedList.Count > 0)
@if (ItemTableList[i].Type is Json.WindowConst.AreaTypes.FILL)
{
Splitted? currSplitted = SplittedList.Where(x => x.AreaList.First().Equals(FillList[currIndexFill])).FirstOrDefault();
@if (currSplitted != null)
int currIndexFill = ItemTableList[i].IndexItem;
if (FillList.ElementAt(currIndexFill).ParentArea is Frame)
{
@if (currSplitted.ParentArea != null && currSplitted.ParentWindow != null
&& currSplitted.AreaList.FirstOrDefault() != null && currSplitted.AreaList.First()!.AreaList.Count == 0)
<div class="dropdown px-4">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
<i class="fa-solid fa-plus"></i>
</button>
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
</ul>
</div>
}
else if (SplittedList != null && SplittedList.Count > 0)
{
Splitted? currSplitted = SplittedList.Where(x => x.AreaList.First().Equals(FillList[currIndexFill])).FirstOrDefault();
@if (currSplitted != null)
{
<div class="dropdown px-4">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
<i class="fa-solid fa-plus"></i>
</button>
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
<li><button class="dropdown-item" @onclick="() => AddSashIntoFill(currIndexFill)">Add Sash</button></li>
@for (int k = 0; k < SashGroupList.Count; k++)
{
int Index = k;
<li><button class="dropdown-item" @onclick="() => CopySashIntoFill(Index, currIndexFill)">Copy Sash @(SashGroupList.Count == 1 ? "" : (Index + 1))</button></li>
}
</ul>
</div>
@if (currSplitted.ParentArea != null && currSplitted.ParentWindow != null
&& currSplitted.AreaList.FirstOrDefault() != null && currSplitted.AreaList.First()!.AreaList.Count == 0)
{
<div class="dropdown px-4">
<button class="btn btn-sm dropdown-toggle" type="button" @onclick="() => ToggleDropdownFill(currIndexFill)">
<i class="fa-solid fa-plus"></i>
</button>
<ul class="dropdown-menu @(isOpenFill.ElementAt(currIndexFill) ? "show" : "")" style="min-width:5rem; max-width:10rem">
<li><button class="dropdown-item" @onclick="() => AddInglesinaIntoFill(currIndexFill)">Add Inglesina</button></li>
<li><button class="dropdown-item" @onclick="() => AddSashIntoFill(currIndexFill)">Add Sash</button></li>
@for (int k = 0; k < SashGroupList.Count; k++)
{
int Index = k;
<li><button class="dropdown-item" @onclick="() => CopySashIntoFill(Index, currIndexFill)">Copy Sash @(SashGroupList.Count == 1 ? "" : (Index + 1))</button></li>
}
</ul>
</div>
}
}
}
}
}
</div>
</div>
@* <div class="card text-center m-1 p-1 shadow-sm hover-shadow">
<button class="btn btn-sm btn-danger btn-rounded"
style="font-size: 1rem;">
<i class="bi bi-trash3-fill"></i>
</button>
</div> *@
@* </div> *@
</td>
}
else
{
@* <td>@FillTable(i, j)</td> *@
<td> </td>
}
}
+6
View File
@@ -60,6 +60,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public Frame FrameWindow { get; set; } = null!;
/// <summary>
/// Utente
/// </summary>
[Parameter]
public bool BaseUser { get; set; } = false;
/// <summary>
/// Evento richiesta prossimo step
/// </summary>
@@ -16,8 +16,15 @@
else
{
<span class="input-group-text">@CurrRec.sName</span>
}
<input type="number" class="form-control" @bind="@CurrVal">
}
@if (User)
{
<input type="number" readonly class="form-control" value="@CurrVal">
}
else
{
<input type="number" class="form-control" @bind="@CurrVal">
}
<span class="input-group-text">mm</span>
</div>
@@ -16,6 +16,12 @@ namespace WebWindowComplex.Compo
[Parameter]
public EventCallback<FrameDimension> EC_Update { get; set; }
/// <summary>
/// Livello di accesso (utente base)
/// </summary>
[CascadingParameter(Name = "User")]
public bool User { get; set; } = false!;
#endregion Public Properties
#region Protected Methods
+17 -28
View File
@@ -1,44 +1,33 @@
@using static WebWindowComplex.LayoutConst
<div class="input-group mb-2">
<label class="input-group-text px-2 py-1">
<img class="img-fluid" src="@GetImageJointPosPath(CurrPosJointName)" title="@(CurrPosJointName)" width="50" />
</label>
@if (User)
{
<span class="input-group-text">@(CurrPosJointName)</span>
<input type="text" readonly class="form-control" value="@(CurrRec.JointTypeList.FirstOrDefault(x => x.Id == (int)CurrRec.SelJointType))">
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
type="button"
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");">
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrJointName)" title="@(CurrJointName)" width="50" />
</span>
</button>
}
else
{
<label class="input-group-text px-2 py-1">
<img class="img-fluid" src="@GetImageJointPosPath(CurrPosJointName)" title="@(CurrPosJointName)" width="50" />
</label>
@if (CurrRec.ParentArea is Frame &&
(CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.DOUBLEARC ||
CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.ARC_FULL ||
CurrRec.ParentArea.ParentWindow.AreaList.First().SelShapeIndex == (int)Json.WindowConst.Shapes.THREECENTERARC) &&
(CurrRec.nIndex == 3 || CurrRec.nIndex == 4))
{
<div class="dropdown" @onfocusout="HandleFocusOut" tabindex="0">
<button class="btn btn-outline-secondary dropdown-toggle d-flex align-items-center gap-2"
type="button"
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");"
@onclick="ToggleDropdownOpening"
aria-expanded="@isOpenDropdown">
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrJointName)" title="@(CurrJointName)" width="50" />
</span>
</button>
<ul class="dropdown-menu p-2 @(isOpenDropdown ? "show" : "")"
style="position: absolute; min-width: 7em;">
<div class="col p-0">
<button type="button"
class="dropdown-item d-flex flex-column align-items-center justify-content-center p-2 rounded text-center h-100 @ButtonOpeningCss(CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Id)"
style="background-color: @(CurrJoint == CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Id ? "#d4e6fa" : "#f8f9fa");"
@onclick="() => SelJoint(CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Id)">
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Name)"
title="@(CurrRec.JointTypeList.First(x => x.Id == CurrJoint).Name)" width="100" />
</button>
</div>
</ul>
</div>
<button class="btn btn-outline-secondary d-flex align-items-center gap-2"
type="button"
style="background-color: @(isOpenDropdown ? "#f8f9fa" : "#ffffff"); color: @(isOpenDropdown ? "#333333" : "");">
<span class="d-flex align-items-center">
<img class="img-fluid" src="@GetImageJointShapePath(CurrPosJointName, CurrJointName)" title="@(CurrJointName)" width="50" />
</span>
</button>
}
else
{
+28 -27
View File
@@ -3,17 +3,17 @@
<div class="row">
@if (isLoading)
{
<EgwCoreLib.Razor.LoadingData Title="...processing..."></EgwCoreLib.Razor.LoadingData>
<LoadingData DisplayMode="LoadingData.SpinMode.Normal" DisplaySize="LoadingData.CtrlSize.Large" Title="...processing..."></LoadingData>
}
else if (!okParams)
{
<div class="d-flex flex-column">
<div class="card text-center shadow rounded">
<div class="col-md-12 d-grid gap-4 p-2 d-md-flex justify-content-end flex-wrap">
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">Close</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
</div>
<div class="alert alert-warning">
<div class="fs-3">Parametri Mancanti!</div>
<div class="fs-3">@Traduci("ConfWind_MissingParam")</div>
</div>
</div>
</div>
@@ -23,10 +23,10 @@
<div class="d-flex flex-column">
<div class="card text-center shadow rounded">
<div class="col-md-12 d-grid gap-4 p-2 d-md-flex justify-content-end flex-wrap">
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">Close</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
</div>
<div class="alert alert-warning">
<div class="fs-3">JWD Mancante!</div>
<div class="fs-3">@Traduci("ConfWind_MissingJWD")</div>
</div>
</div>
</div>
@@ -38,7 +38,7 @@
{
<div class="d-flex flex-column">
<div class="alert alert-danger">
<div class="fs-3">Errori validazione!</div>
<div class="fs-3">@Traduci("ConfWind_ValidError")</div>
<div class="col-12 col-md-6 col-lg-3">
<ul class="list-group">
@@ -55,7 +55,7 @@
{
<div class="d-flex flex-column">
<div class="alert alert-danger">
<div class="fs-3">Errore configurazione:</div>
<div class="fs-3">@Traduci("ConfWind_ConfigError")</div>
<div class="col-12">
<ul class="list-group">
@foreach (var item in listErrLink)
@@ -76,10 +76,10 @@
<div class="col-md-12 col-lg-6 d-grid px-2 d-md-flex justify-content-md-start flex-wrap">
<ul class="nav nav-tabs card-header-tabs">
<li class="nav-item m-1">
<button data-target="#Tree" class="@tabNavCss(CompileStep.Tree)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.Tree)">Tree</button>
<button data-target="#Tree" class="@tabNavCss(CompileStep.Tree)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.Tree)">@Traduci("ConfWind_Tree")</button>
</li>
<li class="nav-item m-1">
<button data-target="#General" class="@tabNavCss(CompileStep.General)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.General)">General</button>
<button data-target="#General" class="@tabNavCss(CompileStep.General)" style="font-size: 1rem;" @onclick="() => NextStep(CompileStep.General)">@Traduci("ConfWind_General")</button>
</li>
@* @if (FrameWindow.Shape == Json.WindowConst.Shapes.ARC ||
FrameWindow.Shape == Json.WindowConst.Shapes.ARC_FULL ||
@@ -93,9 +93,9 @@
</ul>
</div>
<div class="col-md-12 col-lg-6 d-grid gap-4 px-4 d-md-flex justify-content-md-end align-items-center flex-wrap">
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoReset">Reset</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoSave">Save</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">Close</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoReset">@Traduci("ConfWind_Reset")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoSave">@Traduci("ConfWind_Save")</button>
<button class="btn btn-lg btn-primary px-4" style="font-size: 1rem;" @onclick="DoClose">@Traduci("ConfWind_Close")</button>
</div>
</div>
</div>
@@ -113,6 +113,7 @@
SplittedList="SplittedList"
FillList="FillList"
FrameWindow="FrameWindow"
BaseUser="BaseUser"
EC_NextStep="NextStepArgs"
EC_Remove="RemoveArea"
EC_Collapsed="CollapsedRowTree"
@@ -129,7 +130,7 @@
{
m_PreviousWindow = m_CurrWindow;
}
<CascadingValue Value="baseUser" Name="User">
<CascadingValue Value="BaseUser" Name="User">
<CascadingValue Value="FrameWindow" Name="CurrFrameWindow">
<CascadingValue Value="SashGroupList" Name="SashGroupList">
<CascadingValue Value="SplitList" Name="SplitList">
@@ -155,7 +156,7 @@
}
else
{
<CascadingValue Value="baseUser" Name="User">
<CascadingValue Value="BaseUser" Name="User">
<CardSplit CurrSplit="SplitList[currSplitIndex]"
SashGroupList="SashGroupList"
SplitList="SplitList"
@@ -177,7 +178,7 @@
}
else
{
<CascadingValue Value="baseUser" Name="User">
<CascadingValue Value="BaseUser" Name="User">
<CascadingValue Value="currLoading" Name="IsLoading">
<CascadingValue Value="SashGroupList[currSashIndex]" Name="CurrSashGroup">
<CascadingValue Value="SashGroupList" Name="SashGroupList">
@@ -207,7 +208,7 @@
}
else
{
<CascadingValue Value="baseUser" Name="User">
<CascadingValue Value="BaseUser" Name="User">
<CardInglesina CurrInglesina="InglesinaList[currInglesinaIndex]"
SashGroupList="SashGroupList"
InglesinaList="InglesinaList"
@@ -231,7 +232,7 @@
{
<CardFill CurrIndex="currFillIndex"
CurrFill="FillList[currFillIndex]"
User="baseUser"
User="BaseUser"
EC_UpdateFill="UpdatePreviewFill"
EC_ReqClose="ReturnTree">
</CardFill>
@@ -239,32 +240,32 @@
<div class="card-body py-2">
<div class="d-flex justify-content-between align-items-center">
<div class="col-4 d-flex justify-content-left">
<h5 class="text-center text-nowrap">All fill</h5>
<h5 class="text-center text-nowrap">@Traduci("ConfWind_AllFill")</h5>
</div>
<div class="input-group mb-2 justify-content-center">
@if (baseUser)
@if (BaseUser)
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)">All glass</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)">@Traduci("ConfWind_AllGlass")</button>
}
else
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">All glass</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.GLASS)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.GLASS)">@Traduci("ConfWind_AllGlass")</button>
}
</div>
<div class="input-group mb-2 justify-content-center">
@if (baseUser)
@if (BaseUser)
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)">All wood</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)">@Traduci("ConfWind_AllWood")</button>
}
else
{
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">All wood</button>
<button class="@buttonFillCss(Json.WindowConst.FillTypes.WOOD)" @onclick="() => ChangeAllFill(WebWindowComplex.Json.WindowConst.FillTypes.WOOD)">@Traduci("ConfWind_AllWood")</button>
}
</div>
</div>
</div>
</div>
@if (!baseUser && SplittedList != null && SplittedList.Count > 0)
@if (!BaseUser && SplittedList != null && SplittedList.Count > 0)
{
Splitted? currSplitted = SplittedList.Where(x => x.AreaList.First().Equals(FillList[currFillIndex])).FirstOrDefault();
@if (currSplitted != null)
@@ -287,7 +288,7 @@
ListPayload="ListPayload"
ListWarnings="listWarnings"
DictPendReq="PendReq"
User="baseUser"
User="BaseUser"
EC_UpdateGeneral="UpdatePreviewGeneral"
EC_ReqClose="ReturnTree">
</General>
@@ -304,7 +305,7 @@
<div class="col-md-6 col-lg-6">
@if (string.IsNullOrWhiteSpace(LiveData.SvgPreview))
{
<LoadingData DisplayMode="LoadingData.SpinMode.BounceLine" DisplaySize="LoadingData.CtrlSize.Large"></LoadingData>
<LoadingData DisplayMode="LoadingData.SpinMode.Normal" DisplaySize="LoadingData.CtrlSize.Large"></LoadingData>
}
else
{
+21 -6
View File
@@ -56,7 +56,7 @@ namespace WebWindowComplex
/// Livello di accesso (utente base)
/// </summary>
[Parameter]
public bool baseUser { get; set; } = false!;
public bool BaseUser { get; set; } = false!;
/// <summary>
/// Classe override css x SVG (x rescale)
@@ -241,8 +241,8 @@ namespace WebWindowComplex
if (m_CurrWindow != null && m_CurrWindow.AreaList != null && m_CurrWindow.AreaList.Count > 0)
{
checkWarnings();
if (SashGroupList.Count > 0)
currAntaIndex = 0;
//if (SashGroupList.Count > 0)
// currAntaIndex = 0;
if (updRequested)
{
// se mancasse dizionario forme chiamo quello
@@ -314,7 +314,7 @@ namespace WebWindowComplex
private static Logger Log = LogManager.GetCurrentClassLogger();
private int currAntaIndex = 0;
//private int currAntaIndex = 0;
private int currFillIndex = -1;
@@ -1404,8 +1404,8 @@ namespace WebWindowComplex
prevHardware[i] = SashGroupList.ElementAt(i).SelHardware;
}
}
if (SashGroupList.Count > 0)
currAntaIndex = 0;
//if (SashGroupList.Count > 0)
// currAntaIndex = 0;
// Aggiorno window con dati shape e hw option
UpdateDict();
}
@@ -2290,6 +2290,21 @@ namespace WebWindowComplex
}
}
/// <summary>
/// Metodo per traduzione in lingua corrente
/// </summary>
/// <param name="lemma"></param>
/// <returns></returns>
private string Traduci(string lemma)
{
string ans = lemma;
if (Vocabulary != null && Vocabulary.ContainsKey(lemma))
{
ans = Vocabulary.GetValueOrDefault(lemma) ?? "";
}
return ans;
}
#endregion Private Methods
}
}
+23 -1
View File
@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>3.1.8.1217</Version>
<Version>3.1.8.1311</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione Configurazioni avanzate Window per LUX</Description>
@@ -150,6 +150,28 @@
@@ -6,7 +6,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Version>3.1.8.1217</Version>
<Version>3.1.8.1311</Version>
<Authors>Annamaria Sassi</Authors>
<Company>Egalware</Company>
<Description>Componente gestione JWD per LUX</Description>
@@ -461,6 +461,30 @@