diff --git a/WebDoorCreator.Data/DbModels/DoorModel.cs b/WebDoorCreator.Data/DbModels/DoorModel.cs
index a62f594..2682d47 100644
--- a/WebDoorCreator.Data/DbModels/DoorModel.cs
+++ b/WebDoorCreator.Data/DbModels/DoorModel.cs
@@ -94,6 +94,25 @@ namespace WebDoorCreator.Data.DbModels
[ForeignKey("TypeId")]
public virtual DoorTypeModel? TypeNav { get; set; }
-
+
+ public DoorModel ObjClone(string userId)
+ {
+ DateTime adesso = DateTime.Now;
+ DoorModel answ = new DoorModel()
+ {
+ MeasureUnit = MeasureUnit,
+ TypeId = TypeId,
+ DoorExtCode = DoorExtCode,
+ DateIns = adesso,
+ UserIdIns = userId,
+ DateMod = adesso,
+ UserIdMod = userId,
+ DoorDescript = DoorDescript,
+ UnitCost = UnitCost,
+ DateLockExpiry = DateLockExpiry,
+ UserIdLock = UserIdLock
+ };
+ return answ;
+ }
}
}
diff --git a/WebDoorCreator.UI/Components/DoorMan/DoorList.razor b/WebDoorCreator.UI/Components/DoorMan/DoorList.razor
index 3998f80..ec6b51e 100644
--- a/WebDoorCreator.UI/Components/DoorMan/DoorList.razor
+++ b/WebDoorCreator.UI/Components/DoorMan/DoorList.razor
@@ -7,16 +7,23 @@
-
+
}
+
+
+
+
+
@if (DoorsList == null || DoorsList.Count == 0)
- { }
+ {
+
+ }
else
{
int idxCount = 0;
@@ -26,7 +33,20 @@
imgPath = $"images/LogoEgw{idxCount % 5:00}.png";
idxCount++;
-
+ @if (isCloneMode)
+ {
+
+
+ }
+ else if (isAddRemMode)
+ {
+
+ }
+ else
+ {
+
+
+ }
}
diff --git a/WebDoorCreator.UI/Components/DoorMan/DoorList.razor.cs b/WebDoorCreator.UI/Components/DoorMan/DoorList.razor.cs
index 8a3d739..1ffb872 100644
--- a/WebDoorCreator.UI/Components/DoorMan/DoorList.razor.cs
+++ b/WebDoorCreator.UI/Components/DoorMan/DoorList.razor.cs
@@ -177,6 +177,37 @@ namespace WebDoorCreator.UI.Components.DoorMan
// rimando alla pagina... dettaglio...
NavManager.NavigateTo($"/DoorDefinition?idOrd={currOrderId}&idDoor={doorId}");
}
+ protected bool isCloneMode { get; set; }
+ protected bool isAddRemMode { get; set; }
+
+ protected async void setCloneDoorMode(string message)
+ {
+ await Task.Delay(1);
+ isCloneMode = !isCloneMode;
+ isAddRemMode = false;
+ await InvokeAsync(StateHasChanged);
+ }
+ protected async void setAddRemDoor()
+ {
+ await Task.Delay(1);
+ isAddRemMode = !isAddRemMode;
+ isCloneMode = false;
+ await InvokeAsync(StateHasChanged);
+ }
+
+ protected async Task doClone(string message)
+ {
+ var door2Clone = DoorsList?.Where(x => x.DoorId == int.Parse(message)).FirstOrDefault();
+
+ if (door2Clone != null)
+ {
+ var doorOpToAdd = door2Clone.ObjClone(userId);
+
+ // salvo!
+ var done = await WDService.DoorInsert(doorOpToAdd);
+ await ReloadData();
+ }
+ }
protected async void sendToAbh(int ordId, int orderStat)
{
if (orderStat == 10)
@@ -222,5 +253,26 @@ namespace WebDoorCreator.UI.Components.DoorMan
}
}
}
+
+ protected async Task addOneDoorNumber(string msg1, string msg2)
+ {
+ //var door = new DoorModel();
+ var done = await WDService.DoorModQty(int.Parse(msg1), int.Parse(msg2), true);
+ if (done)
+ {
+ await InvokeAsync(StateHasChanged);
+ await ReloadData();
+ }
+ }
+ protected async Task removeOneDoorNumber(string msg1, string msg2)
+ {
+ //var door = new DoorModel();
+ var done = await WDService.DoorModQty(int.Parse(msg1), int.Parse(msg2), false);
+ if (done)
+ {
+ await InvokeAsync(StateHasChanged);
+ await ReloadData();
+ }
+ }
}
}
\ No newline at end of file
diff --git a/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor b/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor
index 20f3a52..15eb99c 100644
--- a/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor
+++ b/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor
@@ -27,12 +27,22 @@
execPlus()" />
execMinus()" />
}
+ else if (ShowClone)
+ {
+ execClone()" />
+
+ }
+
@if (ShowPlusMinus)
{
}
+ else if (ShowClone)
+ {
+ execClone()" />
+ }
else
{
execFunc()" />
diff --git a/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor.cs b/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor.cs
index 8acaa29..1b7aaf8 100644
--- a/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor.cs
+++ b/WebDoorCreator.UI/Components/SvgComp/DoorSvgObj.razor.cs
@@ -15,6 +15,9 @@ namespace WebDoorCreator.UI.Components.SvgComp
[Parameter]
public EventCallback EC_ExePlus { get; set; }
+ [Parameter]
+ public EventCallback EC_ExeClone { get; set; }
+
[Parameter]
public string ImagePath { get; set; } = "images/LogoEgw.png";
@@ -53,6 +56,8 @@ namespace WebDoorCreator.UI.Components.SvgComp
[Parameter]
public bool ShowPlusMinus { get; set; } = false;
+ [Parameter]
+ public bool ShowClone { get; set; } = false;
[Parameter]
public Dictionary TextData { get; set; } = new Dictionary();
@@ -100,6 +105,10 @@ namespace WebDoorCreator.UI.Components.SvgComp
{
EC_ExePlus.InvokeAsync(true);
}
+ protected void execClone()
+ {
+ EC_ExeClone.InvokeAsync(true);
+ }
protected override void OnParametersSet()
{
diff --git a/WebDoorCreator.UI/temp/Conf.yaml b/WebDoorCreator.UI/temp/Conf.yaml
index 62c0291..127d077 100644
--- a/WebDoorCreator.UI/temp/Conf.yaml
+++ b/WebDoorCreator.UI/temp/Conf.yaml
@@ -18,7 +18,7 @@ size:
width: 33.8125
height: 81.25
thickness: 1.75
-swing: LH
+swing: LHI
secure: UP
material: wood
profiles:
@@ -39,6 +39,50 @@ profiles:
machining: ON
overmaterial: 0.1
hardware:
+ vision_cut_outs:
+ - shape: Generic\Circle
+ radius: 10
+ center_from_top: 20
+ center_from_lock: 0
+ door_center: center
+
+ louver_cut_outs:
+ - shape: Generic\Cuore2.nge
+ length: 10.0000
+ width: 18.8125
+ bottom_rail: 8.0
+ lock_stile: 0.0
+ door_center: center
+
+ mail_slots:
+ - template: Generic\Rect
+ height: 3
+ bottom_rail: 20
+ delta_center: 5
+
+ hinges:
+ - template: Generic Conceiled\StdConHingeDeepR
+ ToptoCL: 4.875
+ back_set: 0.125
+ thickness: 0.25
+
+ ept:
+ - template: Generic\StdEPT
+ ToptoCL: 15
+ FacetoCL: 0.875
+
+ locks:
+ - template: Generic\Std86
+ position: 45.875
+ back_set: 2.0
+ offset_WS: 0.0
+ side: lock_top
+
+ edge_pulls:
+ - template: Generic\EdgePull230B
+ position: 45
+ offset_WS: 0.0
+
pivot:
- template: Generic\CenterHungPivot
type: centerhung
@@ -53,5 +97,17 @@ hardware:
- template: Generic\OHCloserArm_103_1_90
position: 0.000
+ strikes:
+ - template: Generic\StdFaceStrike
+ position: 57.875
+ back_set: 2.75
+ offset_WS: 0.0
+
+ rabbet:
+ - template: Generic\Rabbet
+ side: top
+ width: 0.6
+ depth: 0.8
+
---