+ inizio gestione conferma hw template

This commit is contained in:
zaccaria.majid
2023-04-11 15:14:17 +02:00
parent 443bcb9699
commit dd3bd7bd77
16 changed files with 1128 additions and 113 deletions
@@ -65,6 +65,17 @@ namespace WebDoorCreator.Data.DbModels
public string JsoncActVal { get; set; } = "";
/// <summary>
/// Id dell'utente che ha preso conferma del template
/// </summary>
public string userConfirm { get; set; } = "";
/// <summary>
/// Data e ora in cui è stata presa conferma del template
/// </summary>
public DateTime? DtConfirm { get; set; }
[ForeignKey("DoorId")]
public virtual DoorModel? DoorNav { get; set; }
@@ -0,0 +1,850 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using WebDoorCreator.Data;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
[DbContext(typeof(WDCDataContext))]
[Migration("20230411092932_AddConfirmDoorOp")]
partial class AddConfirmDoorOp
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.UseCollation("Latin1_General_CI_AS")
.HasAnnotation("ProductVersion", "6.0.14")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1);
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetRoles", b =>
{
b.Property<string>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("nvarchar(450)");
b.Property<string>("ConcurrencyStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NormalizedName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("AspNetRoles", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
{
b.Property<string>("UserId")
.HasColumnType("nvarchar(450)");
b.Property<string>("RoleId")
.HasColumnType("nvarchar(450)");
b.HasKey("UserId", "RoleId");
b.HasIndex("RoleId");
b.ToTable("AspNetUserRoles", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUsers", b =>
{
b.Property<string>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("nvarchar(450)");
b.Property<int>("AccessFailedCount")
.HasColumnType("int");
b.Property<string>("ConcurrencyStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("EmailConfirmed")
.HasColumnType("bit");
b.Property<bool>("LockoutEnabled")
.HasColumnType("bit");
b.Property<DateTimeOffset?>("LockoutEnd")
.HasColumnType("datetimeoffset");
b.Property<string>("NormalizedEmail")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("NormalizedUserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("PasswordHash")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("PhoneNumber")
.HasColumnType("nvarchar(max)");
b.Property<bool>("PhoneNumberConfirmed")
.HasColumnType("bit");
b.Property<string>("SecurityStamp")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("TwoFactorEnabled")
.HasColumnType("bit");
b.Property<string>("UserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("AspNetUsers", null, t => t.ExcludeFromMigrations());
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.CompanyModel", b =>
{
b.Property<int>("CompanyId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("CompanyId"), 1L, 1);
b.Property<string>("Address")
.IsRequired()
.HasMaxLength(250)
.HasColumnType("nvarchar(250)");
b.Property<string>("City")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("CompanyExtCode")
.IsRequired()
.HasMaxLength(250)
.HasColumnType("nvarchar(250)");
b.Property<string>("CompanyName")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("CompanyToken")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("nvarchar(150)");
b.Property<string>("PrivateNote")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("State")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("VAT")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ZipCode")
.HasColumnType("int");
b.HasKey("CompanyId");
b.ToTable("Company");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorModel", b =>
{
b.Property<int>("DoorId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorId"), 1L, 1);
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateLockExpiry")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("MeasureUnit")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("OrderId")
.HasColumnType("int");
b.Property<int>("Quantity")
.HasColumnType("int");
b.Property<int>("TypeId")
.HasColumnType("int");
b.Property<decimal>("UnitCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdLock")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorId");
b.HasIndex("OrderId");
b.HasIndex("TypeId");
b.ToTable("Door");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpModel", b =>
{
b.Property<int>("DoorOpId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorOpId"), 1L, 1);
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("DoorId")
.HasColumnType("int");
b.Property<DateTime?>("DtConfirm")
.HasColumnType("datetime2");
b.Property<string>("JsoncActVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ObjectId")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("userConfirm")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.ToTable("DoorOp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpTypeModel", b =>
{
b.Property<int>("DoorOpTypId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("DoorOpTypId"), 1L, 1);
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DisplayUrl")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<HierarchyId>("DoorOpIdPathFromPatriarch")
.HasColumnType("hierarchyid");
b.Property<string>("ExtDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ExtOpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("FPath")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("HasHw")
.HasColumnType("bit");
b.Property<string>("HwCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("HwDescription")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsConcrete")
.HasColumnType("bit");
b.Property<bool>("IsDefault")
.HasColumnType("bit");
b.Property<string>("JsoncConfig")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("MaxAllowed")
.HasColumnType("int");
b.Property<string>("OpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ParentDoorOpId")
.HasColumnType("int");
b.Property<string>("Rev")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("ValidFrom")
.HasColumnType("datetime2");
b.Property<DateTime>("ValidUntil")
.HasColumnType("datetime2");
b.HasKey("DoorOpTypId");
b.ToTable("DoorOpType");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorTypeModel", b =>
{
b.Property<int>("TypeId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("TypeId"), 1L, 1);
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("TypeCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("TypeId");
b.ToTable("DoorType");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.GraphicParamsModel", b =>
{
b.Property<int>("GraphicParamId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("GraphicParamId"), 1L, 1);
b.Property<int>("compoId")
.HasColumnType("int");
b.Property<string>("graphicParamAlias")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamDefaultVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamKey")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamType")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("graphicParamsN")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("GraphicParamId");
b.ToTable("GraphicParams");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.HardwareModel", b =>
{
b.Property<int>("HardwareId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("HardwareId"), 1L, 1);
b.Property<string>("compoAlias")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("compoLayerName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("compoName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<bool>("compoTemplateIsActive")
.HasColumnType("bit");
b.HasKey("HardwareId");
b.ToTable("Hardware");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.LanguageModel", b =>
{
b.Property<string>("CodLingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("DescrizioneLingua")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.HasKey("CodLingua");
b.ToTable("Languages");
b.HasData(
new
{
CodLingua = "EN",
DescrizioneLingua = "English"
},
new
{
CodLingua = "IT",
DescrizioneLingua = "Italiano"
});
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ListValuesModel", b =>
{
b.Property<string>("TableName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("FieldName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Value")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("DefaultVal")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("InputType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Ordinal")
.HasColumnType("int");
b.Property<bool>("isSerializable")
.HasMaxLength(5)
.HasColumnType("bit");
b.HasKey("TableName", "FieldName", "Value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "LH",
Label = "Left Handed",
Ordinal = 1,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "RH",
Label = "Right Handed",
Ordinal = 2,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "LHR",
Label = "Left Handed Reverse",
Ordinal = 3,
isSerializable = false
},
new
{
TableName = "Opening",
FieldName = "Swing",
Value = "RHR",
Label = "Right Handed Reverse",
Ordinal = 4,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "BV",
Label = "Bevel",
Ordinal = 1,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "SQ",
Label = "Squared",
Ordinal = 2,
isSerializable = false
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
Value = "1B",
Label = "Bull Nose 1",
Ordinal = 3,
isSerializable = false
});
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.ListValuesTempModel", b =>
{
b.Property<string>("TableName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("FieldName")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Value")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("DefaultVal")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("InputType")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Ordinal")
.HasColumnType("int");
b.Property<bool>("isSerializable")
.HasMaxLength(5)
.HasColumnType("bit");
b.HasKey("TableName", "FieldName", "Value");
b.ToTable("ListValuesTemp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.Property<int>("OrderId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("OrderId"), 1L, 1);
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Status")
.HasColumnType("int");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("OrderId");
b.HasIndex("CompanyId");
b.ToTable("Order");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderStatusViewModel", b =>
{
b.Property<int>("OrderId")
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("OrderId"), 1L, 1);
b.Property<int>("CompanyId")
.HasColumnType("int");
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<int>("NumDoors")
.HasColumnType("int");
b.Property<int>("NumType")
.HasColumnType("int");
b.Property<string>("OrderDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OrderExtCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("OrderStatus")
.HasColumnType("int");
b.Property<decimal>("TotCost")
.HasColumnType("decimal(18,2)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("OrderId");
b.ToView("OrderStatusViewModel");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.UsersViewModel", b =>
{
b.Property<string>("UserId")
.HasColumnType("nvarchar(450)");
b.Property<string>("RoleId")
.HasColumnType("nvarchar(450)");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("RoleName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("UserId", "RoleId");
b.ToView("UsersViewModel");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyModel", b =>
{
b.Property<string>("Lingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Lemma")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Traduzione")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Lingua", "Lemma");
b.ToTable("Vocabulary");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.VocabularyTempModel", b =>
{
b.Property<string>("Lingua")
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<string>("Lemma")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("Traduzione")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.HasKey("Lingua", "Lemma");
b.ToTable("VocabularyTemp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.AspNetUserRoles", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.AspNetRoles", "RolesNav")
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("WebDoorCreator.Data.DbModels.AspNetUsers", "UsersNav")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("RolesNav");
b.Navigation("UsersNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.OrderModel", "OrderNav")
.WithMany()
.HasForeignKey("OrderId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("WebDoorCreator.Data.DbModels.DoorTypeModel", "TypeNav")
.WithMany()
.HasForeignKey("TypeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("OrderNav");
b.Navigation("TypeNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.DoorModel", "DoorNav")
.WithMany()
.HasForeignKey("DoorId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.CompanyModel", "CompanyNav")
.WithMany()
.HasForeignKey("CompanyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("CompanyNav");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,37 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class AddConfirmDoorOp : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<DateTime>(
name: "DtConfirm",
table: "DoorOp",
type: "datetime2",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "userConfirm",
table: "DoorOp",
type: "nvarchar(max)",
nullable: false,
defaultValue: "");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "DtConfirm",
table: "DoorOp");
migrationBuilder.DropColumn(
name: "userConfirm",
table: "DoorOp");
}
}
}
@@ -260,6 +260,9 @@ namespace WebDoorCreator.Data.Migrations.WDCData
b.Property<int>("DoorId")
.HasColumnType("int");
b.Property<DateTime?>("DtConfirm")
.HasColumnType("datetime2");
b.Property<string>("JsoncActVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
@@ -280,6 +283,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("userConfirm")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
@@ -204,16 +204,6 @@ namespace WebDoorCreator.UI.Components.Gen
//WDCVService.EA_VocabularyLemmas += OnNewVocLemma;
}
//protected override async Task OnAfterRenderAsync(bool firstRender)
//{
// if (firstRender)
// {
// listVocLemmas = new Dictionary<string, Dictionary<string, string>>();
// listVocLemmas = await WDCService.VocLemmaGetAll();
// }
//}
protected override async Task OnParametersSetAsync()
{
await Task.Delay(1);
@@ -15,7 +15,7 @@ namespace WebDoorCreator.UI.Components.Hardware
public string Lingua { get; set; } = "EN";
[Parameter]
public int DoorId { get; set; } = 0;
[Parameter]
[CascadingParameter]
public string UserId { get; set; } = "";
#endregion Public Properties
@@ -3,7 +3,7 @@
<div class="row">
@foreach (var item in DoorOpList)
{
<div class="col-4 mb-2">
<div class="col-6 mb-2">
<HwSingleInstance Lingua="@Lingua" DoorOpInst="@item" HwCode="@HwCode"></HwSingleInstance>
</div>
}
@@ -1,97 +1,115 @@
@if (currVal == null)
{
<EgwCoreLib.Razor.LoadingData></EgwCoreLib.Razor.LoadingData>
}
else
{
<div class="input-group">
<span class="input-group-text" id="Folder">Folder</span>
<select class="form-select" @bind="@folderName">
@if (listValuesFname != null)
{
@foreach (var folder in listValuesFname)
{
<option value="@folder.Value">@folder.Label</option>
}
}
</select>
<div class="btnHead d-flex justify-content-between">
<div class="w-100">
<div class="borderTop"></div>
<div class="d-flex justify-content-between">
FLUSH PULL 1
<button class="btnDelete" @onclick="() => doCancel()">
<i class="fa-solid fa-xmark"></i>
</button>
</div>
</div>
<div class="input-group">
<span class="input-group-text" id="Template">Template</span>
@if (listValuesFiles != null && listValuesFiles.Count > 0)
{
<select class="form-select" @bind="@templateName">
@foreach (var val in listValuesFiles)
{
<option value="@val.Value">@val.Label</option>
}
</select>
}
else
{
<input class="form-select" disabled>
}
</div>
@foreach (var item in currVal)
</div>
<div class="d-flex justify-content-between">
@if (currVal == null)
{
@if (item.Key != "Folder" && item.Key != "Template")
{
if (isCombo(item.Key))
{
<div class="input-group">
<span class="input-group-text">@translate(item.Key)</span>
<select class="form-select" @bind="@currVal[item.Key]">
@foreach (var param in comboSet(item.Key))
{
<option value="@param.Split("/")[0]">
@(translate(@param.Split("/")[1]))
</option>
}
</select>
</div>
}
else
{
<div class="input-group">
<span class="input-group-text">@translate(item.Key)</span>
<input type="text" class="form-control" @bind="@currVal[item.Key]">
</div>
}
}
<EgwCoreLib.Razor.LoadingData></EgwCoreLib.Razor.LoadingData>
}
}
@*@foreach (var graph in getGraphicParams())
{
@foreach (var graphParam in graph.Value)
else
{
@if (graphParam.Value.Count == 1)
{
<div>
<div class="input-group">
<span class="input-group-text" id="@($"p_{graphParam.Key}")">@translate(graphParam.Key)</span>
<input type="text" class="form-control" value="@graphParam.Value.FirstOrDefault()" aria-describedby="basic-addon1">
</div>
}
else
{
<div class="input-group">
<span class="input-group-text" id="@($"p_{graphParam.Key}")">@translate(graphParam.Key)</span>
<select class="form-select">
@foreach (var param in graphParam.Value)
<span class="input-group-text" id="Folder">Folder</span>
<select class="form-select" @bind="@folderName">
@if (listValuesFname != null)
{
<option value="@param.Split("/")[0]">@(translate(@param.Split("/")[1]))</option>
@foreach (var folder in listValuesFname)
{
<option value="@folder.Value">@folder.Label</option>
}
}
</select>
</div>
}
<div class="input-group">
<span class="input-group-text" id="Template">Template</span>
@if (listValuesFiles != null && listValuesFiles.Count > 0)
{
<select class="form-select" @bind="@templateName">
@foreach (var val in listValuesFiles)
{
<option value="@val.Value">@val.Label</option>
}
</select>
}
else
{
<input class="form-select" disabled>
}
</div>
@foreach (var item in currVal)
{
@if (DoorOpInst.userConfirm != "" && DoorOpInst.DtConfirm != null)
{
@if (item.Key != "Folder" && item.Key != "Template")
{
if (isCombo(item.Key))
{
<div class="input-group">
<span class="input-group-text">@translate(item.Key)</span>
<select class="form-select" @bind="@currVal[item.Key]">
@foreach (var param in comboSet(item.Key))
{
<option value="@param.Split("/")[0]">
@(translate(@param.Split("/")[1]))
</option>
}
</select>
</div>
}
else
{
<div class="input-group">
<span class="input-group-text">@translate(item.Key)</span>
<input type="text" class="form-control" @bind="@currVal[item.Key]">
</div>
}
}
}
}
<button class="btnConfirm" @onclick="()=>doConfirm()">
CONFIRM
</button>
@*<button class="btnSave" @onclick="() => doSave()">
Save
</button>*@
</div>
}
@*@foreach (var graph in getGraphicParams())
{
@foreach (var graphParam in graph.Value)
{
@if (graphParam.Value.Count == 1)
{
<div class="input-group">
<span class="input-group-text" id="@($"p_{graphParam.Key}")">@translate(graphParam.Key)</span>
<input type="text" class="form-control" value="@graphParam.Value.FirstOrDefault()" aria-describedby="basic-addon1">
</div>
}
else
{
<div class="input-group">
<span class="input-group-text" id="@($"p_{graphParam.Key}")">@translate(graphParam.Key)</span>
<select class="form-select">
@foreach (var param in graphParam.Value)
{
<option value="@param.Split("/")[0]">@(translate(@param.Split("/")[1]))</option>
}
</select>
</div>
}
}
}*@
}*@
<div class="row">
<div class="btn btn-danger col-6 px-1" @onclick="() => doCancel()">
Cancel
</div>
<button class="btn btn-success col-6 px-1" @onclick="() => doSave()">
Save
</button>
</div>
</div>
@@ -18,6 +18,9 @@ namespace WebDoorCreator.UI.Components.Hardware
[Parameter]
public string Lingua { get; set; } = "EN";
[CascadingParameter]
public string userId { get; set; } = "";
#endregion Public Properties
#region Public Methods
@@ -185,6 +188,14 @@ namespace WebDoorCreator.UI.Components.Hardware
}
}
protected async Task doConfirm()
{
DoorOpInst.userConfirm = userId;
DoorOpInst.DtConfirm = DateTime.Now;
// salvo!
await WDCService.DoorOpUpdate(DoorOpInst);
}
#endregion Private Methods
}
}
@@ -0,0 +1,39 @@
.btnGen {
border-radius: 50%;
width: 3.5rem;
height: 3.5rem;
background-color: aqua;
border: 5px solid black;
}
.btnDelete {
border-radius: 50%;
width: 3.5rem;
height: 3.5rem;
background-color: aqua;
border: 5px solid black;
background: #B71C1C;
}
.btnHeadTail {
width: 100%;
padding: 0.8rem;
background: none;
border: none;
}
.btnConfirm {
width: 100%;
padding: 0.8rem;
background: none;
border: none;
border-bottom: 3px solid black;
}
.btnHead {
width: 100%;
padding: 0.8rem;
background: none;
border: none;
}
.borderTop {
border-top: 7px solid #000;
/*position: absolute;*/
width: 90%;
}
@@ -0,0 +1,37 @@
.btnGen {
border-radius: 50%;
width: 3.5rem;
height: 3.5rem;
background-color: aqua;
border: 5px solid black;
}
.btnDelete {
.btnGen;
background: #B71C1C;
}
.btnHeadTail {
width: 100%;
padding: 0.8rem;
background: none;
border: none;
}
.btnConfirm {
.btnHeadTail;
border-bottom: 3px solid black;
}
.btnHead {
.btnHeadTail;
//border-top: 3px solid black;
}
.borderTop {
border-top: 7px solid #000;
/*position: absolute;*/
width: 90%;
//right: 50%;
//bottom: 0;
}
@@ -0,0 +1 @@
.btnGen{border-radius:50%;width:3.5rem;height:3.5rem;background-color:#0ff;border:5px solid #000;}.btnDelete{border-radius:50%;width:3.5rem;height:3.5rem;background-color:#0ff;border:5px solid #000;background:#b71c1c;}.btnHeadTail{width:100%;padding:.8rem;background:none;border:0;}.btnConfirm{width:100%;padding:.8rem;background:none;border:0;border-bottom:3px solid #000;}.btnHead{width:100%;padding:.8rem;background:none;border:0;}.borderTop{border-top:7px solid #000;width:90%;}
+17 -15
View File
@@ -636,23 +636,25 @@ namespace WebDoorCreator.UI.Data
var compoName = fIni.ReadString("Compo", "Name", "COMPONAME");
compoCode = compoName.Split("/")[1];
}
ListValuesTempModel folderNames = new ListValuesTempModel()
{
TableName = $"{compoCode}".Replace(" ", "_"),
FieldName = "Folder",
Value = @$"{tName[tName.Length - 1]}".Replace(" ", "_"),
Label = @$"{tName[tName.Length - 1]}",
Ordinal = 0,
DefaultVal = " ",
InputType = " ",
};
values.Add(folderNames);
string[] templateFiles = Directory.GetFiles(templateDirectory);
if (templateFiles.Length > 0)
{
ListValuesTempModel folderNames = new ListValuesTempModel()
{
TableName = $"{compoCode}".Replace(" ", "_"),
FieldName = "Folder",
Value = @$"{tName[tName.Length - 1]}".Replace(" ", "_"),
Label = @$"{tName[tName.Length - 1]}",
Ordinal = 0,
DefaultVal = " ",
InputType = " ",
};
values.Add(folderNames);
}
foreach (string templateFile in templateFiles)
{
ListValuesTempModel temp = new ListValuesTempModel()
{
TableName = $"{compoCode}".Replace(" ", "_"),
@@ -881,7 +883,7 @@ namespace WebDoorCreator.UI.Data
ordinal++;
}
else
{
{
Log.Error($"GraphicParamsGetAll | Duplicated key: {listValObj.TableName} {listValObj.FieldName} {listValObj.Value} ");
}
}
+3 -1
View File
@@ -16,7 +16,9 @@
</div>
@*<DoorSizingStep E_paramChanged="catchParamChange" DoorId="@idDoor"></DoorSizingStep>*@
@*<DoorDefHwStep></DoorDefHwStep>*@
<HardwareList DoorId="@idDoor" Lingua="@userLang" UserId="@WDCUService.userId"></HardwareList>
<CascadingValue Value="@WDCUService.userId">
<HardwareList DoorId="@idDoor" Lingua="@userLang"></HardwareList>
</CascadingValue>
</div>
<div class="col-5">
<DoorPreview></DoorPreview>
@@ -0,0 +1,6 @@
namespace WebDoorCreator.UI.Shared
{
public partial class MainLayout
{
}
}
+4
View File
@@ -26,5 +26,9 @@
{
"outputFile": "Components/Hardware/HardwareList.razor.css",
"inputFile": "Components/Hardware/HardwareList.razor.less"
},
{
"outputFile": "Components/Hardware/HwSingleInstance.razor.css",
"inputFile": "Components/Hardware/HwSingleInstance.razor.less"
}
]