Merge branch 'feature/UpgradeDoorDataModel' into develop

This commit is contained in:
zaccaria.majid
2023-04-05 08:47:58 +02:00
88 changed files with 11267 additions and 784 deletions
+46
View File
@@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebDoorCreator.Core
{
public class ConfigItem
{
/// <summary>
/// Nome dell'item
/// </summary>
public string Name { get; set; } = "";
/// <summary>
/// Tipo dell'item (es: string, int, double, list...)
/// </summary>
public string Type { get; set; } = "";
/// <summary>
/// Valore dell'item
/// </summary>
public string ValString { get; set; } = "";
public int ValInt
{
get
{
int answ = 0;
int.TryParse(ValString, out answ);
return answ;
}
}
public double ValDouble
{
get
{
double answ = 0;
double.TryParse(ValString, out answ);
return answ;
}
}
}
}
+18 -7
View File
@@ -2,6 +2,18 @@
{
public class Enum
{
#region Public Enums
public enum OrderStatus
{
NA = 0,
DoorDef,
Sent,
ApprovedByMaker,
ApprovedByCustomer,
InProduction
}
public enum UserLevel
{
ND = 0,
@@ -12,14 +24,13 @@
User = 5
}
public enum OrderStatus
public enum DoorDefStep
{
NA=0,
DoorDef,
Sent,
ApprovedByMaker,
ApprovedByCustomer,
InProduction
Door = 0,
Hardware,
report
}
#endregion Public Enums
}
}
+112
View File
@@ -0,0 +1,112 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace WebDoorCreator.Core
{
public class IniFile
{
public string FileName;
/// <summary>
/// Constructor
/// </summary>
/// <PARAM name="INIPath"></PARAM>
public IniFile(string INIPath)
{
FileName = INIPath;
}
/// <summary>
/// Read data from the Ini file
/// </summary>
/// <PARAM name="Section"></PARAM>
/// <PARAM name="Key"></PARAM>
/// <returns></returns>
public string ReadString(string Section, string Key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section, Key, "", temp, 255, FileName);
return temp.ToString();
}
/// <summary>
/// Read a string. If not found use default value
/// </summary>
/// <param name="Section"></param>
/// <param name="Key"></param>
/// <param name="DefaultVal"></param>
/// <returns></returns>
public string ReadString(string Section, string Key, string DefaultVal)
{
string temp = ReadString(Section, Key);
if (temp == "") temp = DefaultVal;
return temp;
}
/// <summary>
/// GetPrivateProfileString: import windows dll functions
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="def"></param>
/// <param name="retVal"></param>
/// <param name="size"></param>
/// <param name="filePath"></param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
/// <summary>
/// GetPrivateProfileSection: import windows dll functions
/// </summary>
/// <param name="section"></param>
/// <param name="retVal"></param>
/// <param name="size"></param>
/// <param name="filePath"></param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern int GetPrivateProfileSection(string section, IntPtr retVal, uint size, string filePath);
/// <summary>
/// Read a complete section (keys=values)
/// </summary>
/// <param name="Section"></param>
/// Section name
/// <returns>
/// restituisce delle stringhe keys=values da suddividere appunto come key/val successivamente
/// </returns>
public string[] ReadSection(string Section)
{
const int bufferSize = 2048; // max is 32767
StringBuilder returnedString = new StringBuilder();
IntPtr pReturnedString = Marshal.AllocCoTaskMem(bufferSize);
try
{
int bytesReturned = GetPrivateProfileSection(Section, pReturnedString, bufferSize, FileName);
if (bytesReturned > 0)
{
//bytesReturned -1 to remove trailing \0
for (int i = 0; i < bytesReturned - 1; i++)
{
var currPointer = IntPtr.Add(pReturnedString, i);
var currChar = (char)Marshal.ReadByte(currPointer);
returnedString.Append(currChar);
}
}
}
finally
{
Marshal.FreeCoTaskMem(pReturnedString);
}
string sectionData = returnedString.ToString();
return sectionData.Split('\0');
}
}
}
@@ -7,6 +7,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="EntityFrameworkCore.SqlServer.HierarchyId" Version="3.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.14" />
<PackageReference Include="NLog" Version="5.1.2" />
</ItemGroup>
File diff suppressed because it is too large Load Diff
+16 -1
View File
@@ -12,7 +12,7 @@ using System.Threading.Tasks;
namespace WebDoorCreator.Data.DbModels
{
/// <summary>
/// Tabella dati Orders
/// Tabella dati Door
/// </summary>
[Table("Door")]
public class DoorModel
@@ -25,6 +25,11 @@ namespace WebDoorCreator.Data.DbModels
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// Unità di misura
/// </summary>
public string MeasureUnit { get; set; } = "";
/// <summary>
/// Door's Type
/// </summary>
@@ -71,6 +76,16 @@ namespace WebDoorCreator.Data.DbModels
public decimal UnitCost { get; set; } = 0;
/// <summary>
/// Data scadenza Lock
/// </summary>
public DateTime DateLockExpiry { get; set; } = DateTime.Now;
/// <summary>
/// Codice utente che ha bloccato record
/// </summary>
public string UserIdLock { get; set; } = "";
[ForeignKey("OrderId")]
public virtual OrderModel? OrderNav { get; set; }
@@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace WebDoorCreator.Data.DbModels
{
/// <summary>
/// Tabella dati operation CONCRETE collegate alla porta
/// </summary>
[Table("DoorOp")]
public class DoorOpModel
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DoorOpId { get; set; }
/// <summary>
/// porta di riferimento
/// </summary>
public int DoorId { get; set; } = 0;
/// <summary>
/// Tipo astratto di riferimento
/// </summary>
public int DoorOpTypId { get; set; } = 0;
/// <summary>
/// Descrizione
/// </summary>
public string Description { get; set; } = "";
/// <summary>
/// Data inserimento ordine
/// </summary>
public DateTime DateIns { get; set; } = DateTime.Now;
/// <summary>
/// Codice utente che ha creato
/// </summary>
public string UserIdIns { get; set; } = "";
/// <summary>
/// Data (ultima) modifica ordine
/// </summary>
public DateTime DateMod { get; set; } = DateTime.Now;
/// <summary>
/// Codice utente che ha creato
/// </summary>
public string UserIdMod { get; set; } = "";
/// <summary>
/// Oggetto Json per specifica configurazione VALORIZZATO
/// </summary>
public string JsoncConfigVal { get; set; } = "";
[ForeignKey("DoorId")]
public virtual DoorModel? DoorNav { get; set; }
[ForeignKey("DoorOpTypId")]
public virtual DoorOpTypeModel? DoorOpTypeNav { get; set; }
}
}
@@ -0,0 +1,138 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace WebDoorCreator.Data.DbModels
{
/// <summary>
/// Tabella dati Door Operation Type (astratte)
/// </summary>
[Table("DoorOpType")]
public class DoorOpTypeModel
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DoorOpTypId { get; set; }
/// <summary>
/// Codice univoco dell'operazione da svolgere (calcolato, idealmente 4 char da 36 val 0..Z)
/// </summary>
public string OpCode { get; set; } = "";
/// <summary>
/// Descrizione
/// </summary>
public string Description { get; set; } = "";
/// <summary>
/// Indica se sia da creare sempre
/// </summary>
public bool IsDefault { get; set; } = false;
/// <summary>
/// Indica se ci sia un hardware correlato all'operazione
/// </summary>
public bool HasHw { get; set; } = true;
/// <summary>
/// Indica se sia un oggetto concreto (= con un file, che si può produrre) o abstract (ha figli, è un gruppo logico)
/// </summary>
public bool IsConcrete { get; set; } = true;
/// <summary>
/// Codice dell'HW collegato
/// </summary>
public string HwCode { get; set; } = "";
/// <summary>
/// Descrizione dell'HW collegato
/// </summary>
public string HwDescription { get; set; } = "";
/// <summary>
/// URL dell'immagine/link di riferimento
/// </summary>
public string DisplayUrl { get; set; } = "";
/// <summary>
/// Path folder/file di riferimento
/// </summary>
public string FPath { get; set; } = "";
/// <summary>
/// Idx univoco dell'elemento parent (se 0 = root)
/// </summary>
public int ParentDoorOpId { get; set; } = 0;
#if false
/// <summary>
/// Codice tipo treeView
/// </summary>
public string TreeCode { get; set; } = "";
#endif
/// <summary>
/// Idx univoco dell'elemento parent (se 0 = root)
/// </summary>
public HierarchyId? DoorOpIdPathFromPatriarch { get; set; }
/// <summary>
/// Oggetto Json per specifica configurazione (template)
/// </summary>
public string JsoncConfig { get; set; } = "";
/// <summary>
/// Codice esterno (opzionale)
/// </summary>
public string ExtOpCode { get; set; } = "";
/// <summary>
/// Descrizione esterna (opzionale)
/// </summary>
public string ExtDescript { get; set; } = "";
/// <summary>
/// Revisione dell'item
/// </summary>
public string Rev { get; set; } = "";
/// <summary>
/// Inizio validità item
/// </summary>
public DateTime ValidFrom { get; set; } = new DateTime(2000, 1, 1);
/// <summary>
/// Fine validità item
/// </summary>
public DateTime ValidUntil { get; set; } = new DateTime(3000, 1, 1);
/// <summary>
/// Check validità item
/// </summary>
[NotMapped]
public bool IsActive
{
get => DateTime.Today >= ValidFrom && DateTime.Today <= ValidUntil;
}
/// <summary>
/// Numero massimo associabile a singola Door
/// </summary>
public int MaxAllowed { get; set; } = 1;
#if false
[ForeignKey("ParentDoorOpId")]
public virtual DoorOpModel? ParentNav { get; set; }
#endif
}
}
@@ -12,7 +12,7 @@ using System.Threading.Tasks;
namespace WebDoorCreator.Data.DbModels
{
/// <summary>
/// Tabella dati Orders
/// Tabella dati Door Type
/// </summary>
[Table("DoorType")]
public class DoorTypeModel
+16
View File
@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebDoorCreator.Data.DbModels
{
public class Edges
{
public string lockEdge { get; set; } = "BV";
public string hingeEdge { get; set; } = "BV";
public string topEdge { get; set; } = "SQ";
public string bottomEdge { get; set; } = "SQ";
}
}
@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace WebDoorCreator.Data.DbModels
{
/// <summary>
/// Tabella dati Hardware
/// </summary>
[Table("GraphicParams")]
public class GraphicParamsModel
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int GraphicParamId { get; set; }
/// <summary>
/// Id del componente di riferimento
/// </summary>
public int compoId { get; set; } = 0;
/// <summary>
/// Testata del gruppo di parametri
/// </summary>
public string graphicParamsN { get; set; } = "";
/// <summary>
/// Titolo del parametro
/// </summary>
public string graphicParamKey { get; set; } = "";
/// <summary>
/// Nome del parametro scritto nel file DDF
/// </summary>
public string graphicParamName { get; set; } = "";
/// <summary>
/// Nome del parametro visualizzato dall'utente
/// </summary>
public string graphicParamAlias { get; set; } = "";
/// <summary>
/// Tipo del parametro
/// </summary>
public string graphicParamType { get; set; } = "";
/// <summary>
/// Tipo del parametro
/// </summary>
public string graphicParamDefaultVal { get; set; } = "";
}
}
@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace WebDoorCreator.Data.DbModels
{
/// <summary>
/// Tabella dati Hardware
/// </summary>
[Table("Hardware")]
public class HardwareModel
{
[Key]
public int HardwareId { get; set; }
/// <summary>
/// Nome del componente che verrà scritto nel file DDF
/// </summary>
public string compoName { get; set; } = "";
/// <summary>
/// Nome del componente che verrà visualizzato a schermo (pescato dal file di sinonimi)
/// </summary>
public string compoAlias { get; set; } = "";
/// <summary>
/// Nome del layer legato al componente
/// </summary>
public string compoLayerName { get; set; } = "";
/// <summary>
/// Indica se il il componente deve risultare utilizzabile dal cliente
/// </summary>
public bool compoTemplateIsActive { get; set; } = true;
}
}
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static WebDoorCreator.Core.Enum;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace WebDoorCreator.Data.DbModels
{
/// <summary>
/// Lingue conosciute per il programma
/// </summary>
[Table("Languages")]
public class LanguageModel
{
/// <summary>
/// codice lingua
/// </summary>
[Key, MaxLength(5)]
public string CodLingua { get; set; } = "";
/// <summary>
/// Descrizione della lingua (Lingua per esteso)
/// </summary>
[MaxLength(50)]
public string DescrizioneLingua { get; set; } = "";
}
}
@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebDoorCreator.Data.DbModels
{
#nullable disable
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("ListValuesTemp")]
public partial class ListValuesTempModel
{
#region Public Properties
[MaxLength(50)]
public string TableName { get; set; }
[MaxLength(50)]
public string FieldName { get; set; }
[MaxLength(50)]
public string value { get; set; }
[MaxLength(50)]
public string label { get; set; }
public int ordinal { get; set; }
#endregion Public Properties
}
}
+13
View File
@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebDoorCreator.Data.DbModels
{
public class Opening
{
public string swing { get; set; } = "RH";
}
}
+15
View File
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebDoorCreator.Data.DbModels
{
public class Sizing
{
public string width { get; set; } = "33.8125";
public string height { get; set; } = "81.25";
public string thickness { get; set; } = "1.75";
}
}
@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static WebDoorCreator.Core.Enum;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace WebDoorCreator.Data.DbModels
{
/// <summary>
/// Vocabolario termini
/// </summary>
[Table("Vocabulary")]
public class VocabularyModel
{
/// <summary>
/// Lingua del lemma
/// </summary>
[MaxLength(5)]
public string Lingua { get; set; } = "";
/// <summary>
/// Lemma del termine
/// </summary>
[MaxLength(50)]
public string Lemma { get; set; } = "";
/// <summary>
/// Traduzione del lemma
/// </summary>
[MaxLength(500)]
public string Traduzione { get; set; } = "";
}
}
@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static WebDoorCreator.Core.Enum;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace WebDoorCreator.Data.DbModels
{
/// <summary>
/// Vocabolario termini
/// </summary>
[Table("VocabularyTemp")]
public class VocabularyTempModel
{
/// <summary>
/// Lingua del lemma
/// </summary>
[MaxLength(5)]
public string Lingua { get; set; } = "";
/// <summary>
/// Lemma del termine
/// </summary>
[MaxLength(50)]
public string Lemma { get; set; } = "";
/// <summary>
/// Traduzione del lemma
/// </summary>
[MaxLength(500)]
public string Traduzione { get; set; } = "";
}
}
@@ -0,0 +1,45 @@
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using WebDoorCreator.Data.DbModels;
namespace WebDoorCreator.Data
{
public class DoorOpConfiguration : IEntityTypeConfiguration<DoorOpModel>
{
#region Public Methods
public void Configure(EntityTypeBuilder<DoorOpModel> builder)
{
// Default seeded users
}
#endregion Public Methods
#region Protected Fields
#endregion Protected Fields
#region Protected Methods
//protected DoorOpModel getNewDoorOP(int DoorOpId, int DoorId, int DoorOpTypId, string Description, DateTime DateIns, string UserIdIns, DateTime DateMod, string UserIdMod, string JsoncConfigVal)
//{
// var newRec = new IdentityUser
// {
// UserName = email,
// NormalizedUserName = email.ToUpper(),
// Email = email,
// NormalizedEmail = email.ToUpper(),
// EmailConfirmed = true,
// PasswordHash = hasher.HashPassword(null!, passwd),
// };
// return newRec;
//}
#endregion Protected Methods
}
}
@@ -0,0 +1,38 @@
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WebDoorCreator.Data.DbModels;
using Org.BouncyCastle.Utilities.Collections;
namespace WebDoorCreator.Data
{
public class LanguageConfiguration : IEntityTypeConfiguration<LanguageModel>
{
#region Public Methods
public void Configure(EntityTypeBuilder<LanguageModel> builder)
{
builder.HasData(
getNewLang("EN", "English"),
getNewLang("IT", "Italiano")
);
}
#endregion Public Methods
protected LanguageModel getNewLang(string codeLang, string descLang)
{
var newRec = new LanguageModel
{
CodLingua = codeLang,
DescrizioneLingua = descLang
};
return newRec;
}
}
}
@@ -0,0 +1,635 @@
// <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("20230322163704_DoorOpModelCreation")]
partial class DoorOpModelCreation
{
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>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.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>("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<int>("DoorOpTypId")
.HasColumnType("int");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.HasIndex("DoorOpTypId");
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>("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<string>("JsoncConfig")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ParentDoorOpId")
.HasColumnType("int");
b.Property<string>("Rev")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("TreeCode")
.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.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>("label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ordinal")
.HasColumnType("int");
b.HasKey("TableName", "FieldName", "value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LH",
label = "Left Handed",
ordinal = 1
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RH",
label = "Right Handed",
ordinal = 2
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LHR",
label = "Left Handed Reverse",
ordinal = 3
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RHR",
label = "Right Handed Reverse",
ordinal = 4
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "BV",
label = "Bevel",
ordinal = 1
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "SQ",
label = "Squared",
ordinal = 2
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "1B",
label = "Bull Nose 1",
ordinal = 3
});
});
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.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.HasOne("WebDoorCreator.Data.DbModels.DoorOpTypeModel", "DoorOpTypeNav")
.WithMany()
.HasForeignKey("DoorOpTypId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
b.Navigation("DoorOpTypeNav");
});
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,91 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class DoorOpModelCreation : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "DoorOpType",
columns: table => new
{
DoorOpTypId = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
OpCode = table.Column<string>(type: "nvarchar(max)", nullable: false),
Description = table.Column<string>(type: "nvarchar(max)", nullable: false),
HasHw = table.Column<bool>(type: "bit", nullable: false),
IsConcrete = table.Column<bool>(type: "bit", nullable: false),
HwCode = table.Column<string>(type: "nvarchar(max)", nullable: false),
HwDescription = table.Column<string>(type: "nvarchar(max)", nullable: false),
FPath = table.Column<string>(type: "nvarchar(max)", nullable: false),
ParentDoorOpId = table.Column<int>(type: "int", nullable: false),
TreeCode = table.Column<string>(type: "nvarchar(max)", nullable: false),
JsoncConfig = table.Column<string>(type: "nvarchar(max)", nullable: false),
ExtOpCode = table.Column<string>(type: "nvarchar(max)", nullable: false),
ExtDescript = table.Column<string>(type: "nvarchar(max)", nullable: false),
Rev = table.Column<string>(type: "nvarchar(max)", nullable: false),
ValidFrom = table.Column<DateTime>(type: "datetime2", nullable: false),
ValidUntil = table.Column<DateTime>(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_DoorOpType", x => x.DoorOpTypId);
});
migrationBuilder.CreateTable(
name: "DoorOp",
columns: table => new
{
DoorOpId = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
DoorId = table.Column<int>(type: "int", nullable: false),
DoorOpTypId = table.Column<int>(type: "int", nullable: false),
Description = table.Column<string>(type: "nvarchar(max)", nullable: false),
DateIns = table.Column<DateTime>(type: "datetime2", nullable: false),
UserIdIns = table.Column<string>(type: "nvarchar(max)", nullable: false),
DateMod = table.Column<DateTime>(type: "datetime2", nullable: false),
UserIdMod = table.Column<string>(type: "nvarchar(max)", nullable: false),
JsoncConfigVal = table.Column<string>(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_DoorOp", x => x.DoorOpId);
table.ForeignKey(
name: "FK_DoorOp_Door_DoorId",
column: x => x.DoorId,
principalTable: "Door",
principalColumn: "DoorId",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_DoorOp_DoorOpType_DoorOpTypId",
column: x => x.DoorOpTypId,
principalTable: "DoorOpType",
principalColumn: "DoorOpTypId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_DoorOp_DoorId",
table: "DoorOp",
column: "DoorId");
migrationBuilder.CreateIndex(
name: "IX_DoorOp_DoorOpTypId",
table: "DoorOp",
column: "DoorOpTypId");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "DoorOp");
migrationBuilder.DropTable(
name: "DoorOpType");
}
}
}
@@ -0,0 +1,649 @@
// <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("20230323075059_DoorOpMigr")]
partial class DoorOpMigr
{
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>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.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>("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<int>("DoorOpTypId")
.HasColumnType("int");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.HasIndex("DoorOpTypId");
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>("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<string>("JsoncConfig")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("ParentDoorOpId")
.HasColumnType("int");
b.Property<string>("Rev")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("TreeCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("ValidFrom")
.HasColumnType("datetime2");
b.Property<DateTime>("ValidUntil")
.HasColumnType("datetime2");
b.HasKey("DoorOpTypId");
b.HasIndex("ParentDoorOpId")
.IsUnique();
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.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>("label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ordinal")
.HasColumnType("int");
b.HasKey("TableName", "FieldName", "value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LH",
label = "Left Handed",
ordinal = 1
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RH",
label = "Right Handed",
ordinal = 2
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LHR",
label = "Left Handed Reverse",
ordinal = 3
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RHR",
label = "Right Handed Reverse",
ordinal = 4
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "BV",
label = "Bevel",
ordinal = 1
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "SQ",
label = "Squared",
ordinal = 2
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "1B",
label = "Bull Nose 1",
ordinal = 3
});
});
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.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.HasOne("WebDoorCreator.Data.DbModels.DoorOpTypeModel", "DoorOpTypeNav")
.WithMany()
.HasForeignKey("DoorOpTypId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
b.Navigation("DoorOpTypeNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.DoorOpTypeModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.DoorOpModel", "ParentNav")
.WithOne()
.HasForeignKey("WebDoorCreator.Data.DbModels.DoorOpTypeModel", "ParentDoorOpId")
.OnDelete(DeleteBehavior.NoAction)
.IsRequired();
b.Navigation("ParentNav");
});
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,36 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class DoorOpMigr : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateIndex(
name: "IX_DoorOpType_ParentDoorOpId",
table: "DoorOpType",
column: "ParentDoorOpId",
unique: true);
migrationBuilder.AddForeignKey(
name: "FK_DoorOpType_DoorOp_ParentDoorOpId",
table: "DoorOpType",
column: "ParentDoorOpId",
principalTable: "DoorOp",
principalColumn: "DoorOpId");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_DoorOpType_DoorOp_ParentDoorOpId",
table: "DoorOpType");
migrationBuilder.DropIndex(
name: "IX_DoorOpType_ParentDoorOpId",
table: "DoorOpType");
}
}
}
@@ -0,0 +1,699 @@
// <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("20230328135646_HWHandle")]
partial class HWHandle
{
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>("DateMod")
.HasColumnType("datetime2");
b.Property<string>("DoorDescript")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("DoorExtCode")
.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>("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<int>("DoorOpTypId")
.HasColumnType("int");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.HasIndex("DoorOpTypId");
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<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<string>("JsoncConfig")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
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.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>("label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ordinal")
.HasColumnType("int");
b.HasKey("TableName", "FieldName", "value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LH",
label = "Left Handed",
ordinal = 1
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RH",
label = "Right Handed",
ordinal = 2
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LHR",
label = "Left Handed Reverse",
ordinal = 3
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RHR",
label = "Right Handed Reverse",
ordinal = 4
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "BV",
label = "Bevel",
ordinal = 1
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "SQ",
label = "Squared",
ordinal = 2
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "1B",
label = "Bull Nose 1",
ordinal = 3
});
});
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.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.HasOne("WebDoorCreator.Data.DbModels.DoorOpTypeModel", "DoorOpTypeNav")
.WithMany()
.HasForeignKey("DoorOpTypId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
b.Navigation("DoorOpTypeNav");
});
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,110 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class HWHandle : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_DoorOpType_DoorOp_ParentDoorOpId",
table: "DoorOpType");
migrationBuilder.DropIndex(
name: "IX_DoorOpType_ParentDoorOpId",
table: "DoorOpType");
migrationBuilder.DropColumn(
name: "ParentDoorOpId",
table: "DoorOpType");
migrationBuilder.DropColumn(
name: "TreeCode",
table: "DoorOpType");
migrationBuilder.AddColumn<HierarchyId>(
name: "DoorOpIdPathFromPatriarch",
table: "DoorOpType",
type: "hierarchyid",
nullable: true);
migrationBuilder.CreateTable(
name: "GraphicParams",
columns: table => new
{
GraphicParamId = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
compoId = table.Column<int>(type: "int", nullable: false),
graphicParamsN = table.Column<string>(type: "nvarchar(max)", nullable: false),
graphicParamKey = table.Column<string>(type: "nvarchar(max)", nullable: false),
graphicParamName = table.Column<string>(type: "nvarchar(max)", nullable: false),
graphicParamAlias = table.Column<string>(type: "nvarchar(max)", nullable: false),
graphicParamType = table.Column<string>(type: "nvarchar(max)", nullable: false),
graphicParamDefaultVal = table.Column<string>(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_GraphicParams", x => x.GraphicParamId);
});
migrationBuilder.CreateTable(
name: "Hardware",
columns: table => new
{
HardwareId = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
compoName = table.Column<string>(type: "nvarchar(max)", nullable: false),
compoAlias = table.Column<string>(type: "nvarchar(max)", nullable: false),
compoLayerName = table.Column<string>(type: "nvarchar(max)", nullable: false),
compoTemplateIsActive = table.Column<bool>(type: "bit", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Hardware", x => x.HardwareId);
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "GraphicParams");
migrationBuilder.DropTable(
name: "Hardware");
migrationBuilder.DropColumn(
name: "DoorOpIdPathFromPatriarch",
table: "DoorOpType");
migrationBuilder.AddColumn<int>(
name: "ParentDoorOpId",
table: "DoorOpType",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<string>(
name: "TreeCode",
table: "DoorOpType",
type: "nvarchar(max)",
nullable: false,
defaultValue: "");
migrationBuilder.CreateIndex(
name: "IX_DoorOpType_ParentDoorOpId",
table: "DoorOpType",
column: "ParentDoorOpId",
unique: true);
migrationBuilder.AddForeignKey(
name: "FK_DoorOpType_DoorOp_ParentDoorOpId",
table: "DoorOpType",
column: "ParentDoorOpId",
principalTable: "DoorOp",
principalColumn: "DoorOpId");
}
}
}
@@ -0,0 +1,710 @@
// <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("20230330102212_DoorLockAndMeasure")]
partial class DoorLockAndMeasure
{
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<int>("DoorOpTypId")
.HasColumnType("int");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.HasIndex("DoorOpTypId");
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<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<string>("JsoncConfig")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("OpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
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.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>("label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ordinal")
.HasColumnType("int");
b.HasKey("TableName", "FieldName", "value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LH",
label = "Left Handed",
ordinal = 1
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RH",
label = "Right Handed",
ordinal = 2
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LHR",
label = "Left Handed Reverse",
ordinal = 3
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RHR",
label = "Right Handed Reverse",
ordinal = 4
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "BV",
label = "Bevel",
ordinal = 1
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "SQ",
label = "Squared",
ordinal = 2
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "1B",
label = "Bull Nose 1",
ordinal = 3
});
});
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.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.HasOne("WebDoorCreator.Data.DbModels.DoorOpTypeModel", "DoorOpTypeNav")
.WithMany()
.HasForeignKey("DoorOpTypId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
b.Navigation("DoorOpTypeNav");
});
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,49 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class DoorLockAndMeasure : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<DateTime>(
name: "DateLockExpiry",
table: "Door",
type: "datetime2",
nullable: false,
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
migrationBuilder.AddColumn<string>(
name: "MeasureUnit",
table: "Door",
type: "nvarchar(max)",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "UserIdLock",
table: "Door",
type: "nvarchar(max)",
nullable: false,
defaultValue: "");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "DateLockExpiry",
table: "Door");
migrationBuilder.DropColumn(
name: "MeasureUnit",
table: "Door");
migrationBuilder.DropColumn(
name: "UserIdLock",
table: "Door");
}
}
}
@@ -0,0 +1,713 @@
// <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("20230330111904_DoorOpTypeinit")]
partial class DoorOpTypeinit
{
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<int>("DoorOpTypId")
.HasColumnType("int");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.HasIndex("DoorOpTypId");
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<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<string>("OpCode")
.IsRequired()
.HasColumnType("nvarchar(max)");
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.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>("label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ordinal")
.HasColumnType("int");
b.HasKey("TableName", "FieldName", "value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LH",
label = "Left Handed",
ordinal = 1
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RH",
label = "Right Handed",
ordinal = 2
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LHR",
label = "Left Handed Reverse",
ordinal = 3
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RHR",
label = "Right Handed Reverse",
ordinal = 4
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "BV",
label = "Bevel",
ordinal = 1
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "SQ",
label = "Squared",
ordinal = 2
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "1B",
label = "Bull Nose 1",
ordinal = 3
});
});
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.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.HasOne("WebDoorCreator.Data.DbModels.DoorOpTypeModel", "DoorOpTypeNav")
.WithMany()
.HasForeignKey("DoorOpTypId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
b.Navigation("DoorOpTypeNav");
});
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,26 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class DoorOpTypeinit : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "Isdefault",
table: "DoorOpType",
type: "bit",
nullable: false,
defaultValue: false);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Isdefault",
table: "DoorOpType");
}
}
}
@@ -0,0 +1,723 @@
// <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("20230331131556_DoorOpTypeExtend01")]
partial class DoorOpTypeExtend01
{
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<int>("DoorOpTypId")
.HasColumnType("int");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.HasIndex("DoorOpTypId");
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.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>("label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ordinal")
.HasColumnType("int");
b.HasKey("TableName", "FieldName", "value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LH",
label = "Left Handed",
ordinal = 1
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RH",
label = "Right Handed",
ordinal = 2
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LHR",
label = "Left Handed Reverse",
ordinal = 3
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RHR",
label = "Right Handed Reverse",
ordinal = 4
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "BV",
label = "Bevel",
ordinal = 1
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "SQ",
label = "Squared",
ordinal = 2
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "1B",
label = "Bull Nose 1",
ordinal = 3
});
});
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.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.HasOne("WebDoorCreator.Data.DbModels.DoorOpTypeModel", "DoorOpTypeNav")
.WithMany()
.HasForeignKey("DoorOpTypId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
b.Navigation("DoorOpTypeNav");
});
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,58 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class DoorOpTypeExtend01 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "Isdefault",
table: "DoorOpType",
newName: "IsDefault");
migrationBuilder.AddColumn<string>(
name: "DisplayUrl",
table: "DoorOpType",
type: "nvarchar(max)",
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<int>(
name: "MaxAllowed",
table: "DoorOpType",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<int>(
name: "ParentDoorOpId",
table: "DoorOpType",
type: "int",
nullable: false,
defaultValue: 0);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "DisplayUrl",
table: "DoorOpType");
migrationBuilder.DropColumn(
name: "MaxAllowed",
table: "DoorOpType");
migrationBuilder.DropColumn(
name: "ParentDoorOpId",
table: "DoorOpType");
migrationBuilder.RenameColumn(
name: "IsDefault",
table: "DoorOpType",
newName: "Isdefault");
}
}
}
@@ -0,0 +1,763 @@
// <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("20230403143539_VocabularyAndTempAdd")]
partial class VocabularyAndTempAdd
{
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<int>("DoorOpTypId")
.HasColumnType("int");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.HasIndex("DoorOpTypId");
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.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>("label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ordinal")
.HasColumnType("int");
b.HasKey("TableName", "FieldName", "value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LH",
label = "Left Handed",
ordinal = 1
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RH",
label = "Right Handed",
ordinal = 2
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LHR",
label = "Left Handed Reverse",
ordinal = 3
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RHR",
label = "Right Handed Reverse",
ordinal = 4
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "BV",
label = "Bevel",
ordinal = 1
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "SQ",
label = "Squared",
ordinal = 2
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "1B",
label = "Bull Nose 1",
ordinal = 3
});
});
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.HasOne("WebDoorCreator.Data.DbModels.DoorOpTypeModel", "DoorOpTypeNav")
.WithMany()
.HasForeignKey("DoorOpTypId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
b.Navigation("DoorOpTypeNav");
});
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,47 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class VocabularyAndTempAdd : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Vocabulary",
columns: table => new
{
Lingua = table.Column<string>(type: "nvarchar(5)", maxLength: 5, nullable: false),
Lemma = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
Traduzione = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Vocabulary", x => new { x.Lingua, x.Lemma });
});
migrationBuilder.CreateTable(
name: "VocabularyTemp",
columns: table => new
{
Lingua = table.Column<string>(type: "nvarchar(5)", maxLength: 5, nullable: false),
Lemma = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
Traduzione = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_VocabularyTemp", x => new { x.Lingua, x.Lemma });
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Vocabulary");
migrationBuilder.DropTable(
name: "VocabularyTemp");
}
}
}
@@ -0,0 +1,791 @@
// <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("20230404072710_AddLanguagePack")]
partial class AddLanguagePack
{
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<int>("DoorOpTypId")
.HasColumnType("int");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.HasIndex("DoorOpTypId");
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>("label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ordinal")
.HasColumnType("int");
b.HasKey("TableName", "FieldName", "value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LH",
label = "Left Handed",
ordinal = 1
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RH",
label = "Right Handed",
ordinal = 2
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LHR",
label = "Left Handed Reverse",
ordinal = 3
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RHR",
label = "Right Handed Reverse",
ordinal = 4
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "BV",
label = "Bevel",
ordinal = 1
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "SQ",
label = "Squared",
ordinal = 2
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "1B",
label = "Bull Nose 1",
ordinal = 3
});
});
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.HasOne("WebDoorCreator.Data.DbModels.DoorOpTypeModel", "DoorOpTypeNav")
.WithMany()
.HasForeignKey("DoorOpTypId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
b.Navigation("DoorOpTypeNav");
});
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,40 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class AddLanguagePack : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Languages",
columns: table => new
{
CodLingua = table.Column<string>(type: "nvarchar(5)", maxLength: 5, nullable: false),
DescrizioneLingua = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Languages", x => x.CodLingua);
});
migrationBuilder.InsertData(
table: "Languages",
columns: new[] { "CodLingua", "DescrizioneLingua" },
values: new object[] { "EN", "English" });
migrationBuilder.InsertData(
table: "Languages",
columns: new[] { "CodLingua", "DescrizioneLingua" },
values: new object[] { "IT", "Italiano" });
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Languages");
}
}
}
@@ -0,0 +1,817 @@
// <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("20230404153616_AddListValuesTemp")]
partial class AddListValuesTemp
{
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<int>("DoorOpTypId")
.HasColumnType("int");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.HasIndex("DoorOpTypId");
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>("label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ordinal")
.HasColumnType("int");
b.HasKey("TableName", "FieldName", "value");
b.ToTable("ListValues");
b.HasData(
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LH",
label = "Left Handed",
ordinal = 1
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RH",
label = "Right Handed",
ordinal = 2
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "LHR",
label = "Left Handed Reverse",
ordinal = 3
},
new
{
TableName = "Opening",
FieldName = "Swing",
value = "RHR",
label = "Right Handed Reverse",
ordinal = 4
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "BV",
label = "Bevel",
ordinal = 1
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "SQ",
label = "Squared",
ordinal = 2
},
new
{
TableName = "Edges",
FieldName = "EdgeType",
value = "1B",
label = "Bull Nose 1",
ordinal = 3
});
});
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>("label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ordinal")
.HasColumnType("int");
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.HasOne("WebDoorCreator.Data.DbModels.DoorOpTypeModel", "DoorOpTypeNav")
.WithMany()
.HasForeignKey("DoorOpTypId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
b.Navigation("DoorOpTypeNav");
});
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,33 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace WebDoorCreator.Data.Migrations.WDCData
{
public partial class AddListValuesTemp : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "ListValuesTemp",
columns: table => new
{
TableName = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
FieldName = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
value = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
label = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
ordinal = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ListValuesTemp", x => new { x.TableName, x.FieldName, x.value });
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "ListValuesTemp");
}
}
}
@@ -188,6 +188,9 @@ namespace WebDoorCreator.Data.Migrations.WDCData
b.Property<DateTime>("DateIns")
.HasColumnType("datetime2");
b.Property<DateTime>("DateLockExpiry")
.HasColumnType("datetime2");
b.Property<DateTime>("DateMod")
.HasColumnType("datetime2");
@@ -199,6 +202,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("MeasureUnit")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("OrderId")
.HasColumnType("int");
@@ -215,6 +222,10 @@ namespace WebDoorCreator.Data.Migrations.WDCData
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdLock")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
@@ -228,6 +239,128 @@ namespace WebDoorCreator.Data.Migrations.WDCData
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<int>("DoorOpTypId")
.HasColumnType("int");
b.Property<string>("JsoncConfigVal")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdIns")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("UserIdMod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("DoorOpId");
b.HasIndex("DoorId");
b.HasIndex("DoorOpTypId");
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")
@@ -249,6 +382,102 @@ namespace WebDoorCreator.Data.Migrations.WDCData
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")
@@ -333,6 +562,32 @@ namespace WebDoorCreator.Data.Migrations.WDCData
});
});
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>("label")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("ordinal")
.HasColumnType("int");
b.HasKey("TableName", "FieldName", "value");
b.ToTable("ListValuesTemp");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.Property<int>("OrderId")
@@ -447,6 +702,46 @@ namespace WebDoorCreator.Data.Migrations.WDCData
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")
@@ -485,6 +780,25 @@ namespace WebDoorCreator.Data.Migrations.WDCData
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.HasOne("WebDoorCreator.Data.DbModels.DoorOpTypeModel", "DoorOpTypeNav")
.WithMany()
.HasForeignKey("DoorOpTypId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("DoorNav");
b.Navigation("DoorOpTypeNav");
});
modelBuilder.Entity("WebDoorCreator.Data.DbModels.OrderModel", b =>
{
b.HasOne("WebDoorCreator.Data.DbModels.CompanyModel", "CompanyNav")
@@ -0,0 +1,29 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: S.E.L.
-- Create date: 2023.04.03
-- Description: Esecuzione upsert vocabolario
-- =============================================
ALTER PROCEDURE [dbo].[stp_Voc_Import]
AS
BEGIN
SET NOCOUNT ON;
BEGIN tran
-- effettua merge dati vocabolario
MERGE Vocabulary as tgt
USING (SELECT Lingua, Lemma, Traduzione FROM VocabularyTemp) as src
ON tgt.Lemma = src.Lemma AND tgt.Lingua = src.Lingua
WHEN MATCHED THEN
UPDATE SET Traduzione = src.Traduzione
WHEN NOT MATCHED THEN
INSERT (Lingua, Lemma, Traduzione)
VALUES (Lingua, Lemma, Traduzione);
COMMIT tran
END
@@ -0,0 +1,22 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: S.E.L.
-- Create date: 2023.04.03
-- Description: Esecuzione preparazione tab temp x import vocabolario
-- =============================================
ALTER PROCEDURE [dbo].[stp_Voc_Prepare]
AS
BEGIN
SET NOCOUNT ON;
BEGIN tran
-- effettua preparazione tab appoggio
TRUNCATE TABLE VocabularyTemp
COMMIT tran
END
+32 -5
View File
@@ -66,6 +66,15 @@ namespace WebDoorCreator.Data
public virtual DbSet<AspNetUsers> DbSetUsers { get; set; } = null!;
public virtual DbSet<UsersViewModel> DbSetUsersView { get; set; } = null!;
public virtual DbSet<ListValuesModel> DbSetValues { get; set; } = null!;
public virtual DbSet<ListValuesTempModel> DbSetValuesTemp { get; set; } = null!;
public virtual DbSet<DoorOpTypeModel> DbSetDoorOpType { get; set; } = null!;
public virtual DbSet<DoorOpModel> DbSetDoorOp { get; set; } = null!;
public virtual DbSet<HardwareModel> DbSetHardware { get; set; } = null!;
public virtual DbSet<GraphicParamsModel> DbSetGraphicParams { get; set; } = null!;
public virtual DbSet<VocabularyModel> DbSetVocabulary { get; set; } = null!;
public virtual DbSet<VocabularyTempModel> DbSetVocabularyTemp { get; set; } = null!;
public virtual DbSet<LanguageModel> DbSetLanguages { get; set; } = null!;
#endregion Public Properties
@@ -101,11 +110,11 @@ namespace WebDoorCreator.Data
string connString = _configuration.GetConnectionString("WDC.DB");
if (!string.IsNullOrEmpty(connString))
{
optionsBuilder.UseSqlServer(connString);
optionsBuilder.UseSqlServer(connString, e => e.UseHierarchyId());
}
else
{
optionsBuilder.UseSqlServer("Server=SQL2016DEV;Database=WebDoorCreator;Trusted_Connection=True;");
optionsBuilder.UseSqlServer("Server=SQL2016DEV;Database=WebDoorCreator;Trusted_Connection=True;", e => e.UseHierarchyId());
}
}
}
@@ -128,15 +137,33 @@ namespace WebDoorCreator.Data
modelBuilder.Entity<AspNetUserRoles>().HasKey(c => new { c.UserId, c.RoleId });
modelBuilder.Entity<UsersViewModel>().HasKey(c => new { c.UserId, c.RoleId });
modelBuilder.Entity<ListValuesModel>().HasKey(c => new { c.TableName, c.FieldName, c.value });
modelBuilder.Entity<ListValuesTempModel>().HasKey(c => new { c.TableName, c.FieldName, c.value });
modelBuilder.Entity<VocabularyModel>().HasKey(c => new { c.Lingua, c.Lemma });
modelBuilder.Entity<VocabularyTempModel>().HasKey(c => new { c.Lingua, c.Lemma });
// gestione onCascade DoorOp <--> parent
//modelBuilder.Entity<DoorOpTypeModel>().HasOne<DoorOpModel>(e => e.ParentNav).WithOne().OnDelete(DeleteBehavior.NoAction);
#if false
#endif
// verifico SE devo eseguire la migration del DB IDENT...
bool disableMigrate = _configuration.GetValue<bool>("SetupOpt:DisableWDCMigrate");
bool disableMigrate = false;
if (_configuration != null && _configuration.GetValue<string>("SetupOpt:DisableWDCMigrate") != null)
{
try
{
_configuration.GetValue<bool>("SetupOpt:DisableWDCMigrate");
}
catch
{ }
}
if (!disableMigrate)
{
modelBuilder.ApplyConfiguration(new ListValuesConfiguration());
modelBuilder.ApplyConfiguration(new LanguageConfiguration());
//modelBuilder.ApplyConfiguration(new RoleConfiguration());
//modelBuilder.Seed();
}
//modelBuilder.Seed();
OnModelCreatingPartial(modelBuilder);
}
@@ -13,6 +13,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="EntityFrameworkCore.SqlServer.HierarchyId" Version="3.0.1" />
<PackageReference Include="MailKit" Version="3.5.0" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="6.0.11" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.11" />
@@ -30,6 +31,12 @@
</ItemGroup>
<ItemGroup>
<None Update="SqlScripts\Stored\stp_Voc_Prepare.sql">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="SqlScripts\Stored\stp_Voc_Import.sql">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="SqlScripts\View\OrderStatusView.sql">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
@@ -17,7 +17,9 @@ namespace WebDoorCreator.UI.Components.Buttons
protected NavigationManager NavManager { get; set; } = null!;
[Parameter]
public int doorId { get; set; } = 0;
public int DoorId { get; set; } = 0;
[Parameter]
public int OrderId { get; set; } = 0;
[Parameter]
public bool isAdd { get; set; }
@@ -31,7 +33,7 @@ namespace WebDoorCreator.UI.Components.Buttons
{
//var door = new DoorModel();
doorChange = false;
var done = await WDService.DoorModQty(doorId, isAdd);
var done = await WDService.DoorModQty(OrderId, DoorId, isAdd);
if (done)
{
doorChange = true;
@@ -0,0 +1,13 @@
<div>
@if (change)
{
<button class="btn btn-success"><i class="fa-solid fa-floppy-disk fa-bounce"></i></button>
}
else
{
<button class="btn btn-secondary"><i class="fa-solid fa-floppy-disk"></i></button>
}
<button class="btn btn-success" @onclick="() => toOrderPage()">Return to Order <b>@idOrd</b></button>
</div>
@@ -0,0 +1,37 @@
using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
namespace WebDoorCreator.UI.Components.Buttons
{
public partial class ButtonsDoorDef
{
[Parameter]
public bool paramsChanged { get; set; }
[Parameter]
public int idOrd { get; set; } = 0;
[Inject]
protected IJSRuntime JSRuntime { get; set; } = null!;
[Inject]
protected NavigationManager NavManager { get; set; } = null!;
protected bool change { get;set; }
protected async Task toOrderPage()
{
if (!await JSRuntime.InvokeAsync<bool>("confirm", $"Do you really want to return to the order page without saving current work?"))
return;
await Task.Delay(1);
NavManager.NavigateTo($"OrderDetails?idOrd={idOrd}");
}
protected override async Task OnParametersSetAsync()
{
await Task.Delay(1);
change = paramsChanged;
}
}
}
@@ -0,0 +1,4 @@
@if(ListGraphicParams != null){
}
@@ -0,0 +1,21 @@
using Microsoft.AspNetCore.Components;
using WebDoorCreator.Data.DbModels;
using WebDoorCreator.UI.Data;
namespace WebDoorCreator.UI.Components.DoorDef
{
public partial class DoorDefHwStep
{
[Inject]
protected WebDoorCreatorService WDService { get; set; } = null!;
List<GraphicParamsModel>? ListGraphicParams { get; set; } = null;
protected async override Task OnInitializedAsync()
{
ListGraphicParams = await WDService.ParamGetByHwId(6);
}
}
}
@@ -7,5 +7,6 @@ namespace WebDoorCreator.UI.Components.DoorDef
{
[Parameter]
public OrderStatusViewModel? currOrderStatus { get; set; } = null;
}
}
@@ -10,22 +10,22 @@
{
<div class="d-flex justify-content-center m-5">
<div class="fs-4 me-3">Width</div>
<input />
<input @bind-value="@width" />
</div>
<div class="d-flex justify-content-center m-5">
<div class="fs-4 me-3">Height</div>
<input />
<input @bind-value="@height" />
</div>
<div class="d-flex justify-content-center m-5">
<div class="fs-4 me-3">Thickness</div>
<input />
<input @bind-value="@thickness" />
</div>
}
else if(isOpening)
else if (isOpening)
{
<div class="d-flex justify-content-center m-5">
<div class="fs-4 me-3">Swing</div>
<select>
<select @bind="@swing">
@if (ListSwings != null)
{
@foreach (var item in ListSwings)
@@ -40,7 +40,7 @@
{
<div class="d-flex justify-content-center m-5">
<div class="fs-4 me-3">Lock edge</div>
<select>
<select @bind="@lockEdge">
@if (ListEdges != null)
{
@foreach (var item in ListEdges)
@@ -52,7 +52,7 @@
</div>
<div class="d-flex justify-content-center m-5">
<div class="fs-4 me-3">Hinge edge</div>
<select>
<select @bind="@hingeEdge">
@if (ListEdges != null)
{
@foreach (var item in ListEdges)
@@ -64,7 +64,7 @@
</div>
<div class="d-flex justify-content-center m-5">
<div class="fs-4 me-3">Top edge</div>
<select>
<select @bind="@topEdge">
@if (ListEdges != null)
{
@foreach (var item in ListEdges)
@@ -76,7 +76,7 @@
</div>
<div class="d-flex justify-content-center m-5">
<div class="fs-4 me-3">Bottom edge</div>
<select>
<select @bind="@bottomEdge">
@if (ListEdges != null)
{
@foreach (var item in ListEdges)
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Components;
using Newtonsoft.Json;
using WebDoorCreator.Data.DbModels;
using WebDoorCreator.UI.Data;
@@ -9,9 +10,19 @@ namespace WebDoorCreator.UI.Components.DoorDef
[Inject]
protected WebDoorCreatorService WDService { get; set; } = null!;
[Parameter]
public int DoorId { get; set; } = 0;
[Parameter]
public EventCallback<bool> E_paramChanged { get; set; }
protected bool isSizing { get; set; } = true;
protected List<ListValuesModel>? ListSwings { get; set; } = null;
protected List<ListValuesModel>? ListEdges { get; set; } = null;
protected List<DoorOpModel>? ListDoorOp { get; set; } = null;
protected Edges? DefaultEdges { get; set; } = null;
protected Opening? DefaultOpening { get; set; } = null;
protected Sizing? DefaultSizing { get; set; } = null;
protected string isSizingActive
{
@@ -26,6 +37,7 @@ namespace WebDoorCreator.UI.Components.DoorDef
}
protected bool isEdges { get; set; } = false;
protected bool paramIsChanged { get; set; } = false;
protected string isEdgesActive
{
@@ -53,15 +65,142 @@ namespace WebDoorCreator.UI.Components.DoorDef
isEdges = true;
}
protected string _lockEdge { get; set; } = "";
protected string lockEdge
{
get => _lockEdge;
set
{
_lockEdge = value;
if (DefaultEdges != null)
{
if (_lockEdge != DefaultEdges.lockEdge)
{
paramIsChanged = true;
var pUpd = Task.Run(async () => await E_paramChanged.InvokeAsync(paramIsChanged));
}
}
}
}
protected string _hingeEdge { get; set; } = "";
protected string hingeEdge
{
get => _hingeEdge;
set => _hingeEdge = value;
}
protected string _topEdge { get; set; } = "";
protected string topEdge
{
get => _topEdge;
set => _topEdge = value;
}
protected string _bottomEdge { get; set; } = "";
protected string bottomEdge
{
get => _bottomEdge;
set => _bottomEdge = value;
}
protected double _width { get; set; } = 0.0;
protected double width
{
get => _width;
set => _width = value;
}
protected double _height { get; set; } = 0.0;
protected double height
{
get => _height;
set => _height = value;
}
protected double _thickness { get; set; } = 0.0;
protected double thickness
{
get => _thickness;
set => _thickness = value;
}
protected string _swing { get; set; } = "";
protected string swing
{
get => _swing;
set => _swing = value;
}
protected async Task ReloadData()
{
ListSwings = await WDService.ListValuesGetAll("Opening", "Swing");
ListEdges = await WDService.ListValuesGetAll("Edges", "EdgeType");
ListDoorOp = await WDService.DoorOpGetByDoorId(DoorId);
if (ListDoorOp != null)
{
foreach (var doorOp in ListDoorOp)
{
if (doorOp.DoorOpTypId == 19)
{
var edges = JsonConvert.DeserializeObject<List<Edges>>(doorOp.JsoncConfigVal);
if (edges != null)
{
DefaultEdges = edges.FirstOrDefault();
if (DefaultEdges != null)
{
lockEdge = DefaultEdges.lockEdge;
hingeEdge = DefaultEdges.hingeEdge;
topEdge = DefaultEdges.topEdge;
bottomEdge = DefaultEdges.bottomEdge;
}
}
}
if (doorOp.DoorOpTypId == 20)
{
var sizing = JsonConvert.DeserializeObject<List<Sizing>>(doorOp.JsoncConfigVal);
if (sizing != null)
{
DefaultSizing = sizing.FirstOrDefault();
if (DefaultSizing != null)
{
width = double.Parse(DefaultSizing.width);
height = double.Parse(DefaultSizing.height);
thickness = double.Parse(DefaultSizing.thickness);
}
}
}
if (doorOp.DoorOpTypId == 21)
{
var opening = JsonConvert.DeserializeObject<List<Opening>>(doorOp.JsoncConfigVal);
if (opening != null)
{
DefaultOpening = opening.FirstOrDefault();
if (DefaultOpening != null)
{
swing = DefaultOpening.swing;
}
}
}
}
}
}
protected override async Task OnInitializedAsync()
protected override async Task OnParametersSetAsync()
{
await ReloadData();
if (!paramIsChanged)
{
await ReloadData();
}
}
}
}
@@ -1,5 +1,5 @@
<div class="d-flex justify-content-between">
<div class="btn btn-success w-100">Door</div>
<div class="btn btn-secondary w-100">Hardware</div>
<div class="btn btn-secondary w-100">Report</div>
<div class="btn @doorCSS w-100">Door</div>
<div class="btn @hwCSS w-100">Hardware</div>
<div class="btn @reportCSS w-100">Report</div>
</div>
@@ -1,6 +1,36 @@
using Microsoft.AspNetCore.Components;
namespace WebDoorCreator.UI.Components.DoorDef
{
public partial class StepsList
{
[Parameter]
public Core.Enum.DoorDefStep DoorDefStep { get; set; } = Core.Enum.DoorDefStep.Door;
protected string doorCSS { get; set; } = "btn-secondary";
protected string hwCSS { get; set; } = "btn-secondary";
protected string reportCSS { get; set; } = "btn-secondary";
protected override async Task OnParametersSetAsync()
{
await Task.Delay(1);
if(DoorDefStep == Core.Enum.DoorDefStep.Door)
{
doorCSS = "btn-success";
}
else if (DoorDefStep == Core.Enum.DoorDefStep.Hardware)
{
doorCSS = "btn-success";
hwCSS = "btn-success";
}
else if(DoorDefStep == Core.Enum.DoorDefStep.report)
{
doorCSS = "btn-success";
hwCSS = "btn-success";
reportCSS = "btn-success";
}
}
}
}
@@ -3,25 +3,45 @@
<table class="table table-sm table-striped table-responsive-md border border-dark">
<thead>
<tr class="bg-dark text-light">
<td>Door Type</td>
<th></th>
<th>Door Type</th>
<th>Description</th>
<th>Door external code</th>
<th>Doors Number</th>
<th></th>
<th></th>
<th class="text-end"></th>
</tr>
</thead>
<tbody>
@foreach (var door in DoorsList)
{
<tr>
<td>@door.TypeId</td>
<td>
<button class="btn btn-sm btn-warning" @onclick="()=> editRec(door.DoorId)"><i class="fa-solid fa-pen-to-square"></i></button>
</td>
<td>@(door.TypeNav?.Description ?? "-")</td>
<td>@door.DoorDescript</td>
<td>@door.DoorExtCode</td>
<td>@door.Quantity</td>
<td>
<ButtonAddRemDoor E_isChange="catchDoorChange" doorId="@door.DoorId" isAdd="false"></ButtonAddRemDoor>
@if (door.Quantity > 1)
{
<ButtonAddRemDoor E_isChange="catchDoorChange" OrderId="@door.OrderId" DoorId="@door.DoorId" isAdd="false"></ButtonAddRemDoor>
}
else
{
<button class="btn btn-sm btn-secondary disabled"><i class="fa-solid fa-minus"></i> <i class="fa-solid fa-1"></i></button>
}
</td>
<td>
<ButtonAddRemDoor E_isChange="catchDoorChange" doorId="@door.DoorId" isAdd="true"></ButtonAddRemDoor>
<ButtonAddRemDoor E_isChange="catchDoorChange" OrderId="@door.OrderId" DoorId="@door.DoorId" isAdd="true"></ButtonAddRemDoor>
</td>
<td class="text-end">
@if (door.OrderNav?.Status < Core.Enum.OrderStatus.Sent)
{
<button class="btn btn-sm btn-danger" @onclick="() => deleteRecord(door)"><i class="fa-solid fa-trash-can"></i></button>
}
</td>
</tr>
}
@@ -1,5 +1,4 @@
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Identity;
using Microsoft.JSInterop;
using WebDoorCreator.Data.DbModels;
using WebDoorCreator.UI.Data;
@@ -8,14 +7,7 @@ namespace WebDoorCreator.UI.Components.DoorMan
{
public partial class DoorList
{
[Inject]
protected WebDoorCreatorService WDService { get; set; } = null!;
[Inject]
protected IJSRuntime JSRuntime { get; set; } = null!;
[Inject]
protected NavigationManager NavManager { get; set; } = null!;
#region Public Properties
[Parameter]
public int currOrderId { get; set; } = 0;
@@ -23,19 +15,26 @@ namespace WebDoorCreator.UI.Components.DoorMan
[Parameter]
public EventCallback<bool> E_DoorChanged { get; set; }
protected bool IsChanged { get; set; } = false;
#endregion Public Properties
#region Protected Properties
protected List<DoorModel>? DoorsList { get; set; } = null;
protected override async Task OnParametersSetAsync()
{
await ReloadData();
}
protected bool IsChanged { get; set; } = false;
protected async Task ReloadData()
{
DoorsList = await WDService.DoorsGetByOrderId(currOrderId);
}
[Inject]
protected IJSRuntime JSRuntime { get; set; } = null!;
[Inject]
protected NavigationManager NavManager { get; set; } = null!;
[Inject]
protected WebDoorCreatorService WDService { get; set; } = null!;
#endregion Protected Properties
#region Protected Methods
protected async Task catchDoorChange(bool isChanged)
{
@@ -47,5 +46,33 @@ namespace WebDoorCreator.UI.Components.DoorMan
}
await E_DoorChanged.InvokeAsync(isChanged);
}
protected async Task deleteRecord(DoorModel currRec)
{
if (!await JSRuntime.InvokeAsync<bool>("confirm", $"Door Deletion requested: are you sure to remove {currRec.DoorDescript}?"))
return;
await WDService.DoorDelete(currRec);
await Task.Delay(1);
await ReloadData();
}
protected async Task editRec(int doorId)
{
await Task.Delay(1);
NavManager.NavigateTo($"/DoorDefinition?idOrd={currOrderId}&idDoor={doorId}");
}
protected override async Task OnParametersSetAsync()
{
await ReloadData();
}
protected async Task ReloadData()
{
DoorsList = await WDService.DoorGetByOrderId(currOrderId);
}
#endregion Protected Methods
}
}
@@ -40,7 +40,7 @@
</div>
<div class="text-end text-nowrap px-3">
<div class="d-flex justify-content-between">
<div>
<div class="d-flex justify-content-between">
<a href="Identity/Account/Manage" class="text-decoration-none text-dark" style="">Hello, @context.User.Identity?.Name!</a>
<div class="text-decoration-none text-secondary small" style="">
@if (listCompanies != null)
@@ -63,6 +63,12 @@
}
}
</div>
<div>
<select @bind="userLang" class="form-select form-select-sm">
<option>EN</option>
<option>IT</option>
</select>
</div>
</div>
<form method="post" action="Identity/Account/LogOut">
<button type="submit" class="btnLogout">Log out</button>
@@ -76,7 +82,7 @@
<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
<div class="d-flex justify-content-between w-100 px-4">
<div class="d-flex justify-content-between">
<a class="navbar-brand" href="~/">WebDoorCreator.UI</a>
<a class="navbar-brand" href="/">WebDoorCreator.UI</a>
</div>
</div>
</div>
@@ -17,6 +17,9 @@ namespace WebDoorCreator.UI.Components.Gen
public EventCallback<int> E_UserCurrCompany { get; set; }
public EventCallback<string> E_UserRole { get; set; }
public EventCallback<string> E_UserId { get; set; }
public EventCallback<Dictionary<string, Dictionary<string, string>>> E_VocLemmas { get; set; }
public List<CompanyModel> listCompanies { get; set; } = new List<CompanyModel>();
@@ -64,6 +67,31 @@ namespace WebDoorCreator.UI.Components.Gen
}
}
public string userId
{
get
{
return WDCUService.userId;
}
set
{
WDCUService.userId = value;
reportUserId();
}
}
public Dictionary<string, Dictionary<string, string>>? listVocLemmas
{
get
{
return WDCVService.VocabularyLemmas;
}
set
{
WDCVService.VocabularyLemmas = value;
reportVocLemmas();
}
}
#endregion Public Properties
#region Public Methods
@@ -72,6 +100,7 @@ namespace WebDoorCreator.UI.Components.Gen
{
WDCUService.EA_UserClaims -= OnNewUserClaims;
WDCUService.EA_UserCurrCompany -= OnNewUserCurrComp;
WDCUService.EA_UserId -= OnNewUserId;
}
public async void OnNewUserClaims()
@@ -90,6 +119,14 @@ namespace WebDoorCreator.UI.Components.Gen
});
}
public async void OnNewUserId()
{
await InvokeAsync(() =>
{
StateHasChanged();
});
}
public async void OnNewUserRole()
{
await InvokeAsync(() =>
@@ -98,8 +135,22 @@ namespace WebDoorCreator.UI.Components.Gen
});
}
public async void OnNewVocLemma()
{
await InvokeAsync(() =>
{
StateHasChanged();
});
}
#endregion Public Methods
protected string userLang
{
get => WDCUService.currLanguage ?? "NA";
set => WDCUService.currLanguage = value;
}
#region Protected Properties
[Inject]
@@ -108,9 +159,6 @@ namespace WebDoorCreator.UI.Components.Gen
[Inject]
protected AuthenticationStateProvider ASProvider { get; set; } = null!;
[Inject]
protected AuthenticationStateProvider AuthenticationStateProvider { get; set; } = null!;
protected string currUser { get; set; } = "";
[Inject]
@@ -118,6 +166,8 @@ namespace WebDoorCreator.UI.Components.Gen
[Inject]
protected WDCUserService WDCUService { get; set; } = null!;
[Inject]
protected WDCVocabularyService WDCVService { get; set; } = null!;
#endregion Protected Properties
@@ -150,8 +200,20 @@ namespace WebDoorCreator.UI.Components.Gen
await Task.Delay(1);
WDCUService.EA_UserClaims += OnNewUserClaims;
WDCUService.EA_UserCurrCompany += OnNewUserCurrComp;
WDCUService.EA_UserId += OnNewUserId;
//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);
@@ -159,6 +221,7 @@ namespace WebDoorCreator.UI.Components.Gen
if (userCheck != null && userCheck.IsAuthenticated)
{
currUser = userCheck?.Name!;
await ReloadData();
}
else
@@ -173,8 +236,12 @@ namespace WebDoorCreator.UI.Components.Gen
// reset preliminare
listRecord = new List<string>();
listCompanies = new List<CompanyModel>();
//await WDCService.FlushRedisCache();
var user = await _userManager.FindByNameAsync(currUser);
if (user != null)
{
userId = user.Id;
}
var roleList = await _userManager.GetRolesAsync(user);
if (roleList != null)
{
@@ -239,6 +306,16 @@ namespace WebDoorCreator.UI.Components.Gen
E_UserRole.InvokeAsync(userRole);
}
private void reportUserId()
{
E_UserId.InvokeAsync(userId);
}
private void reportVocLemmas()
{
E_VocLemmas.InvokeAsync();
}
#endregion Private Methods
}
}
@@ -0,0 +1,37 @@
@if (doorOpType != null)
{
@if (doorOpToShow != null)
{
<div class="row m-0">
<div class="text-center">
<div class="row col-4" >
<div class="rectangle">
@(translate(doorOpToShow.HwCode))
<div class="circle" @onclick="()=>hwToAdd()"></div>
</div>
</div>
</div>
<HardwareNewPanel Lingua="@Lingua" HwAdded="@hwAdd" DoorId="@DoorId" DoorTypeTypeId="@doorOpToShow.DoorOpTypId"></HardwareNewPanel>
</div>
<div>
<button class="btn btn-info" @onclick="()=>backToList()">BACK TO LIST</button>
</div>
}
else
{
<div class="row m-0 all">
@foreach (var item in doorOpType)
{
<div class="row col-4">
<div class="rectangle" @onclick="()=>hwToChoose(item.HwCode)">
@(translate(item.HwCode))
<div class="circle"></div>
</div>
</div>
}
</div>
}
}
@@ -0,0 +1,111 @@
using Microsoft.AspNetCore.Components;
using WebDoorCreator.Data.DbModels;
using WebDoorCreator.UI.Components.DoorMan;
using WebDoorCreator.UI.Data;
namespace WebDoorCreator.UI.Components.Hardware
{
public partial class HardwareList
{
#region Public Properties
[Parameter]
public string Lingua { get; set; } = "NA";
[Parameter]
public int DoorId { get; set; } = 0;
[Parameter]
public string UserId { get; set; } = "";
#endregion Public Properties
#region Protected Properties
protected List<DoorOpTypeModel>? doorOpType { get; set; } = null;
protected DoorOpTypeModel? doorOpToShow { get; set; } = null;
protected List<DoorOpModel>? doorOp { get; set; } = null;
protected bool hwAdd { get; set; } = false;
[Inject]
protected WebDoorCreatorService WDService { get; set; } = null!;
[Inject]
protected WDCVocabularyService WDVService { get; set; } = null!;
#endregion Protected Properties
#region Protected Methods
protected int hwCodeToShow { get; set; } = 0;
protected override async Task OnParametersSetAsync()
{
await ReloadData();
}
private async Task ReloadData()
{
var listRecord = await WDService.DoorOpTypeGetAll();
if (listRecord != null)
{
doorOpType = listRecord.Where(x => !(x.IsDefault)).ToList();
}
}
//CultureInfo ci = CultureInfo.InstalledUICulture;
protected string translate(string lemma)
{
string answ = "";
answ = WDVService.Traduci(Lingua, lemma);
return answ;
}
protected async Task hwToChoose(string hwCode)
{
await Task.Delay(1);
if (hwCode != "" && doorOpType != null)
{
doorOpToShow = doorOpType.Where(x => x.HwCode == hwCode).FirstOrDefault();
}
}
protected async Task hwToAdd()
{
await Task.Delay(1);
DateTime adesso = DateTime.Now;
List<DoorOpModel> listOp = new List<DoorOpModel>();
if (doorOpToShow != null)
{
DoorOpModel doorOpToAdd = new DoorOpModel()
{
DateIns = adesso,
DateMod = adesso,
UserIdIns = UserId,
UserIdMod = UserId,
DoorOpTypId = doorOpToShow.DoorOpTypId,
DoorId = DoorId,
JsoncConfigVal = doorOpToShow.JsoncConfig
};
listOp.Add(doorOpToAdd);
// salvo Door OP associate
bool fatto = await WDService.DoorOpInsert(DoorId, listOp);
if (fatto)
{
hwAdd = fatto;
await InvokeAsync(StateHasChanged);
}
}
}
protected async Task backToList()
{
await Task.Delay(1);
doorOpToShow = null;
}
#endregion Protected Methods
}
}
@@ -0,0 +1,53 @@
.rectangle {
height: 2.75rem;
width: 75%;
background: #CFD8DC;
position: relative;
margin-bottom: 4rem;
margin-top: 1.25rem;
border-radius: 0.8rem;
display: flex;
flex-wrap: wrap;
align-items: center;
color: #000;
font-weight: bold;
}
.circle {
position: absolute;
height: 6.25rem;
width: 6.25rem;
border-radius: 50%;
border: 4px solid #CFD8DC;
left: 100%;
margin-left: -1.563rem;
top: -1.5rem;
background: black;
}
.rectangleDetail {
height: 2.75rem;
width: 75%;
background: #CFD8DC;
position: relative;
margin-bottom: 4rem;
margin-top: 1.25rem;
border-radius: 0.8rem;
display: flex;
flex-wrap: wrap;
align-items: center;
color: #000;
font-weight: bold;
}
.circleDetail {
position: absolute;
height: 6.25rem;
width: 6.25rem;
border-radius: 50%;
border: 4px solid #CFD8DC;
left: 100%;
margin-left: -1.563rem;
top: -1.5rem;
background: black;
}
.all {
width: 72rem;
}
@@ -0,0 +1,58 @@
.rectangle {
height: 2.75rem;
width: 75%;
background: #CFD8DC;
position: relative;
margin-bottom: 4rem;
margin-top: 1.25rem;
border-radius: 0.8rem;
display: flex;
flex-wrap: wrap;
align-items: center;
color: #000;
font-weight: bold;
}
.circle {
position: absolute;
height: 6.25rem;
width: 6.25rem;
border-radius: 50%;
border: 4px solid #CFD8DC;
left: 100%;
margin-left: -1.563rem;
top: -1.5rem;
background: black;
}
.rectangleDetail {
height: 2.75rem;
width: 75%;
background: #CFD8DC;
position: relative;
margin-bottom: 4rem;
margin-top: 1.25rem;
border-radius: 0.8rem;
display: flex;
flex-wrap: wrap;
align-items: center;
color: #000;
font-weight: bold;
}
.circleDetail {
position: absolute;
height: 6.25rem;
width: 6.25rem;
border-radius: 50%;
border: 4px solid #CFD8DC;
left: 100%;
margin-left: -1.563rem;
top: -1.5rem;
background: black;
}
.all {
width: 72rem;
}
@@ -0,0 +1 @@
.rectangle{height:2.75rem;width:75%;background:#cfd8dc;position:relative;margin-bottom:4rem;margin-top:1.25rem;border-radius:.8rem;display:flex;flex-wrap:wrap;align-items:center;color:#000;font-weight:bold;}.circle{position:absolute;height:6.25rem;width:6.25rem;border-radius:50%;border:4px solid #cfd8dc;left:100%;margin-left:-1.563rem;top:-1.5rem;background:#000;}.rectangleDetail{height:2.75rem;width:75%;background:#cfd8dc;position:relative;margin-bottom:4rem;margin-top:1.25rem;border-radius:.8rem;display:flex;flex-wrap:wrap;align-items:center;color:#000;font-weight:bold;}.circleDetail{position:absolute;height:6.25rem;width:6.25rem;border-radius:50%;border:4px solid #cfd8dc;left:100%;margin-left:-1.563rem;top:-1.5rem;background:#000;}.all{width:72rem;}
@@ -0,0 +1,23 @@
@if (DoorOp != null)
{
<div class="row">
@foreach (var item in DoorOp)
{
<div class="col-4 mb-2">
@foreach (var graph in getGraphicParams(item))
{
@if (graph.graphicParamType == "TextBox")
{
<div class="input-group">
<span class="input-group-text" id="@($"p_{graph.GraphicParamId}")">@(translate(graph.graphicParamAlias))</span>
<input type="text" class="form-control" value="@graph.graphicParamDefaultVal" aria-describedby="basic-addon1">
</div>
}
}
</div>
}
</div>
}
@@ -0,0 +1,68 @@
using Microsoft.AspNetCore.Components;
using Newtonsoft.Json;
using WebDoorCreator.Data;
using WebDoorCreator.Data.DbModels;
using WebDoorCreator.UI.Data;
namespace WebDoorCreator.UI.Components.Hardware
{
public partial class HardwareNewPanel
{
[Parameter]
public int DoorTypeTypeId { get; set; } = 0;
[Parameter]
public int DoorId { get; set; } = 0;
[Parameter]
public bool HwAdded { get; set; } = false;
[Parameter]
public string Lingua { get; set; } = "EN";
[Inject]
protected WebDoorCreatorService WDCService { get; set; } = null!;
[Inject]
protected WDCVocabularyService WDVService { get; set; } = null!;
protected List<DoorOpModel>? ListRecord { get; set; } = null!;
protected List<DoorOpModel>? DoorOp { get; set; } = null!;
//protected DoorOpModel? DoorOp { get; set; } = null!;
protected List<GraphicParamsModel> graphicParams { get; set; } = null!;
protected override async Task OnParametersSetAsync()
{
ListRecord = await WDCService.DoorOpGetByDoorId(DoorId);
if (ListRecord != null)
{
DoorOp = ListRecord.Where(x => (x.DoorId == DoorId) && (x.DoorOpTypId == DoorTypeTypeId)).ToList();
}
}
public List<GraphicParamsModel> getGraphicParams(DoorOpModel currDoorOp)
{
if (DoorOp != null)
{
var param = currDoorOp.JsoncConfigVal;
var deserialized = JsonConvert.DeserializeObject<List<GraphicParamsModel>>(param);
if (deserialized != null)
{
graphicParams = deserialized;
}
}
return graphicParams;
}
protected string translate(string lemma)
{
string answ = "";
answ = WDVService.Traduci(Lingua, lemma);
return answ;
}
}
}
@@ -14,7 +14,8 @@ else
<th class="text-end">Doors Number</th>
<th class="text-end">Model Number</th>
<th class="text-end">TOTAL COST</th>
@* <th>PROGRESS</th>*@
@*<th>PROGRESS</th>*@
<th class="text-end"></th>
</tr>
</thead>
<tbody>
@@ -29,10 +30,16 @@ else
<td class="text-end">@item.NumType</td>
<td class="text-end">@($"{item.TotCost:C2}")</td>
@*<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-label="Basic example" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: calc(20%item.OrderStatus); background-color: @setPgColor(item.OrderStatus)"></div>
</div>
</td>*@
<div class="progress">
<div class="progress-bar" role="progressbar" aria-label="Basic example" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: calc(20%item.OrderStatus); background-color: @setPgColor(item.OrderStatus)"></div>
</div>
</td>*@
<td class="text-end">
@if (item.OrderStatus < (int)Core.Enum.OrderStatus.Sent)
{
<button class="btn btn-sm btn-danger" @onclick="() => deleteRecord(item)"><i class="fa-solid fa-trash-can"></i></button>
}
</td>
</tr>
}
</tbody>
@@ -1,7 +1,9 @@
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Identity;
using Microsoft.JSInterop;
using NLog.LayoutRenderers;
using WebDoorCreator.Data.DbModels;
using WebDoorCreator.UI.Data;
@@ -100,12 +102,12 @@ namespace WebDoorCreator.UI.Components.Order
}
private async Task ReloadData()
{
var adesso = DateTime.Now.Date;
var domani = DateTime.Today.AddDays(1);
ListOrdersStatus = null;
await Task.Delay(1);
if (userClaims != null)
{
ListOrdersStatus = await WDService.GetOrderStatus(userCurrCompany, 0, adesso.AddYears(-2), adesso);
ListOrdersStatus = await WDService.OrderStatusGetFilt(userCurrCompany, 0, domani.AddYears(-2), domani);
}
await Task.Delay(1);
await InvokeAsync(StateHasChanged);
@@ -117,6 +119,18 @@ namespace WebDoorCreator.UI.Components.Order
await E_currOrderStatus.InvokeAsync(currOrd);
}
protected async Task deleteRecord(OrderStatusViewModel currRec)
{
if (!await JSRuntime.InvokeAsync<bool>("confirm", $"Order Deletion requested: are you sure to remove {currRec.OrderExtCode}?"))
return;
await Task.Delay(1);
var done = await WDService.OrderRem(currRec.OrderId);
await WDService.OrdersFlushCache();
await ReloadData();
}
#endregion Private Methods
}
}
@@ -48,8 +48,8 @@ namespace WebDoorCreator.UI.Components.Users
{
//ListRecords = null;
await Task.Delay(1);
UsersList = await WDService.GetUserView();
RolesList = await WDService.GetRolesAll();
UsersList = await WDService.UserViewGetAll();
RolesList = await WDService.RolesGetAll();
await Task.Delay(1);
await InvokeAsync(StateHasChanged);
}
@@ -57,7 +57,7 @@ namespace WebDoorCreator.UI.Components.Users
private async Task setCurrUser(string userId)
{
await Task.Delay(1);
currUser = await WDService.GetUsersById(userId);
currUser = await WDService.UsersGetById(userId);
}
//private async Task editRec(CompanyModel currComp)
+33 -12
View File
@@ -4,7 +4,7 @@
{
#region Public Events
public event Action EA_UserName = null!;
public event Action EA_UserId = null!;
public event Action EA_UserClaims = null!;
@@ -12,19 +12,22 @@
public event Action EA_UserCurrCompany = null!;
public event Action EA_CurrLanguage = null!;
#endregion Public Events
#region Public Properties
public string newUserName
public string userId
{
get => _newUserName;
get => _userId;
set
{
if (_newUserName != value)
if (_userId != value)
{
_newUserName = value;
reportUserName();
_userId = value;
reportUserId();
}
}
}
@@ -67,16 +70,27 @@
}
}
}
public string? currLanguage
{
get => _currLanguage;
set
{
if (_currLanguage != value)
{
_currLanguage = value;
reportCurrentLanguage();
}
}
}
#endregion Public Properties
#region Protected Methods
protected void reportUserName()
protected void reportUserId()
{
if (EA_UserName != null)
if (EA_UserId != null)
{
EA_UserName?.Invoke();
EA_UserId?.Invoke();
}
}
@@ -103,15 +117,22 @@
EA_UserCurrCompany?.Invoke();
}
}
protected void reportCurrentLanguage()
{
if (EA_CurrLanguage != null)
{
EA_CurrLanguage?.Invoke();
}
}
#endregion Protected Methods
#region Private Properties
private string _newUserName { get; set; } = "";
private string _userId { get; set; } = "";
private List<string>? _userClaims { get; set; } = null;
private string _userRole { get; set; } = "";
private int _userCurrComp { get; set; } //= -1;
private string? _currLanguage { get; set; } = null;
#endregion Private Properties
}
@@ -0,0 +1,159 @@
using Microsoft.AspNetCore.Identity.UI.Services;
using Newtonsoft.Json;
using NLog;
using Org.BouncyCastle.Asn1.X500;
using StackExchange.Redis;
using System.Diagnostics;
using WebDoorCreator.Data.Controllers;
namespace WebDoorCreator.UI.Data
{
public class WDCVocabularyService
{
public static WebDoorCreatorController dbController = null!;
public WDCVocabularyService(IConfiguration configuration, IConnectionMultiplexer redisConnMult, IEmailSender emailSender)
{
_configuration = configuration;
_emailSender = emailSender;
// Conf cache
redisConn = redisConnMult;
redisDb = this.redisConn.GetDatabase();
// json serializer... FIX errore loop circolare https://www.ryadel.com/en/jsonserializationexception-self-referencing-loop-detected-error-fix-entity-framework-asp-net-core/
JSSettings = new JsonSerializerSettings()
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
};
// cod app
CodApp = _configuration["CodApp"];
// Conf DB
string connStr = _configuration.GetConnectionString("WDC.DB");
if (string.IsNullOrEmpty(connStr))
{
Log.Info("ConnString empty!");
}
else
{
dbController = new WebDoorCreatorController(configuration);
}
if (dbController != null)
{
if (VocabularyLemmas == null)
{
VocabularyLemmas = Task.Run(async () => await VocLemmaGetAll()).Result;
}
}
Log.Info("Avviata classe WDCVocabularyService");
}
public Dictionary<string, Dictionary<string, string>>? VocabularyLemmas
{
get => _vocabularyLemmas;
set
{
if (_vocabularyLemmas != value)
{
_vocabularyLemmas = value;
}
}
}
private Dictionary<string, Dictionary<string, string>>? _vocabularyLemmas { get; set; } = null;
private TimeSpan UltraLongCache
{
get => TimeSpan.FromSeconds(cacheTtlLong * 10 * rnd.Next(900, 1100) / 1000);
}
public string Traduci(string lingua, string lemma)
{
string answ = $"[{lemma}]";
if (VocabularyLemmas != null && VocabularyLemmas.ContainsKey(lingua))
{
if (VocabularyLemmas[lingua].ContainsKey(lemma))
{
answ = VocabularyLemmas[lingua][lemma];
}
}
return answ;
}
public async Task<Dictionary<string, Dictionary<string, string>>?> VocLemmaGetAll()
{
string source = "DB";
Dictionary<string, Dictionary<string, string>>? dbResult = new Dictionary<string, Dictionary<string, string>>();
// cerco da cache
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
string currKey = $"{rKeyVocLemma}";
string? rawData = await redisDb.StringGetAsync(currKey);
if (!string.IsNullOrEmpty(rawData))
{
source = "REDIS";
var tempResult = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(rawData);
if (tempResult == null)
{
dbResult = new Dictionary<string, Dictionary<string, string>>();
}
else
{
dbResult = tempResult;
}
}
else
{
dbResult = dbController.VocLemmaGetAll();
rawData = JsonConvert.SerializeObject(dbResult, JSSettings);
await redisDb.StringSetAsync(currKey, rawData, UltraLongCache);
}
if (dbResult == null)
{
dbResult = new Dictionary<string, Dictionary<string, string>>();
}
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
Log.Debug($"VocLemmaGetAll | {source} in: {ts.TotalMilliseconds} ms");
return dbResult;
}
/// <summary>
/// Durata cache lunga IN SECONDI
/// </summary>
private int cacheTtlLong = 60 * 5;
/// <summary>
/// Oggetto per connessione a REDIS
/// </summary>
private IConnectionMultiplexer redisConn;
/// <summary>
/// Oggetto DB redis da impiegare x chiamate R/W
/// </summary>
private IDatabase redisDb = null!;
protected const string redisBaseAddr = "WDC";
protected const string rKeyVocLemma = $"{redisBaseAddr}:Cache:VocLemma";
protected Random rnd = new Random();
private static IConfiguration _configuration = null!;
private static JsonSerializerSettings? JSSettings;
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
private readonly IEmailSender _emailSender;
public string CodApp { get; set; } = "";
}
}
File diff suppressed because it is too large Load Diff
+9 -3
View File
@@ -1,7 +1,11 @@
@page "/DoorDefinition"
<h3>Door Definition</h3>
<div class="d-flex justify-content-between">
<div>
<h3>Door Definition</h3>
</div>
<ButtonsDoorDef idOrd="@idOrd" paramsChanged="@paramChanged"></ButtonsDoorDef>
</div>
<div class="row">
<div class="col-7">
<div>
@@ -10,7 +14,9 @@
<div class="mb-3">
<StepsList></StepsList>
</div>
<DoorSizingStep></DoorSizingStep>
@*<DoorSizingStep E_paramChanged="catchParamChange" DoorId="@idDoor"></DoorSizingStep>*@
@*<DoorDefHwStep></DoorDefHwStep>*@
<HardwareList DoorId="@idDoor" Lingua="@userLang" UserId="@WDCUService.userId"></HardwareList>
</div>
<div class="col-5">
<DoorPreview></DoorPreview>
+62 -11
View File
@@ -1,44 +1,95 @@
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.WebUtilities;
using Microsoft.JSInterop;
using Newtonsoft.Json;
using WebDoorCreator.Data.DbModels;
using WebDoorCreator.UI.Data;
namespace WebDoorCreator.UI.Pages
{
public partial class DoorDefinition
public partial class DoorDefinition : IDisposable
{
#region Protected Properties
protected int idOrd { get; set; } = 0;
protected int idDoor { get; set; } = 0;
protected bool paramChanged { get; set; } = false;
[Inject]
protected NavigationManager navManager { get; set; } = null!;
protected IJSRuntime JSRuntime { get; set; } = null!;
[Inject]
protected NavigationManager NavManager { get; set; } = null!;
protected OrderStatusViewModel? orderStatus { get; set; } = null;
[Inject]
protected WebDoorCreatorService WDService { get; set; } = null!;
[Inject]
protected WDCUserService WDCUService { get; set; } = null!;
protected int idOrd { get; set; } = 0;
protected OrderStatusViewModel? orderStatus { get; set; } = null;
private List<OrderStatusViewModel>? ListOrdersStatus = null;
#endregion Protected Properties
protected string userLang { get; set; } = "EN";
#region Protected Methods
protected override async Task OnInitializedAsync()
{
await Task.Delay(1);
var uri = navManager.ToAbsoluteUri(navManager.Uri);
if (QueryHelpers.ParseQuery(uri.Query).TryGetValue("idOrd", out var _idOrd))
var uri = NavManager.ToAbsoluteUri(NavManager.Uri);
if (QueryHelpers.ParseQuery(uri.Query).TryGetValue("idOrd", out var _idOrd) && QueryHelpers.ParseQuery(uri.Query).TryGetValue("idDoor", out var _idDoor))
{
idOrd = int.Parse(_idOrd);
await reloadData();
idDoor = int.Parse(_idDoor);
await ReloadData();
}
userLang = WDCUService.currLanguage ?? "EN";
WDCUService.EA_CurrLanguage += WDUService_EA_CurrLanguage;
}
protected async Task reloadData()
public void Dispose()
{
var adesso = DateTime.Now.Date;
WDCUService.EA_CurrLanguage -= WDUService_EA_CurrLanguage;
}
private void WDUService_EA_CurrLanguage()
{
userLang = WDCUService.currLanguage ?? "EN";
StateHasChanged();
//Task.Run(async () => await ReloadData());
}
protected async Task ReloadData()
{
var domani = DateTime.Today.AddDays(1);
ListOrdersStatus = null;
await Task.Delay(1);
ListOrdersStatus = await WDService.GetOrderStatus(0, 0, adesso.AddYears(-2), adesso);
ListOrdersStatus = await WDService.OrderStatusGetFilt(0, 0, domani.AddYears(-2), domani);
if (ListOrdersStatus != null)
{
orderStatus = ListOrdersStatus.Where(x => x.OrderId == idOrd).FirstOrDefault();
}
await Task.Delay(1);
}
protected async Task catchParamChange(bool ParamChanged)
{
await Task.Delay(1);
paramChanged = ParamChanged;
await InvokeAsync(() =>
{
StateHasChanged();
});
}
#endregion Protected Methods
#region Private Fields
private List<OrderStatusViewModel>? ListOrdersStatus = null;
#endregion Private Fields
}
}
@@ -0,0 +1,3 @@
@page "/ForceReload"
@@ -0,0 +1,40 @@
using Microsoft.AspNetCore.Components;
using WebDoorCreator.UI.Data;
namespace WebDoorCreator.UI.Pages
{
public partial class ForceReload
{
#region Public Methods
public async Task flushCache()
{
await Task.Delay(1);
await WDService.FlushRedisCache();
await Task.Delay(1);
// rimando a pagina corrente
NavManager.NavigateTo("/", true);
}
#endregion Public Methods
#region Protected Properties
[Inject]
protected NavigationManager NavManager { get; set; } = null!;
[Inject]
protected WebDoorCreatorService WDService { get; set; } = null!;
#endregion Protected Properties
#region Protected Methods
protected override async Task OnInitializedAsync()
{
await flushCache();
}
#endregion Protected Methods
}
}
+4 -2
View File
@@ -2,6 +2,8 @@
<PageTitle>Index</PageTitle>
<div class="d-flex flex-wrap align-items-center bgbg">
<h1>Web Door Creator</h1>
<div class="bgbg">
<div class="transpLayer">
<div class="fs-1 p-2 px-3">Web Door Creator</div>
</div>
</div>
+13 -1
View File
@@ -6,5 +6,17 @@
/* Do not repeat the image */
background-size: cover;
/* Resize the background image to cover the entire container */
height: 35rem;
height: 45rem;
display: flex;
flex-wrap: wrap;
align-items: end;
}
.transpLayer {
color: #DEDEDE;
background-image: linear-gradient(to right, rgba(30, 30, 30, 0.9), rgba(255, 255, 255, 0.1));
width: 100%;
height: 5rem;
display: flex;
flex-wrap: wrap;
align-items: end;
}
+14 -2
View File
@@ -3,6 +3,18 @@
background-position: center; /* Center the image */
background-repeat: no-repeat; /* Do not repeat the image */
background-size: cover; /* Resize the background image to cover the entire container */
height: 35rem;
height: 45rem;
display: flex;
flex-wrap: wrap;
align-items: end;
}
.transpLayer {
color: #DEDEDE;
background-image: linear-gradient(to right, rgba(30,30,30,0.9), rgba(255,255,255,0.1));
width: 100%;
height: 5rem;
display: flex;
flex-wrap: wrap;
align-items: end;
}
+1 -1
View File
@@ -1 +1 @@
.bgbg{background-image:url("images/DOORBG.png");background-position:center;background-repeat:no-repeat;background-size:cover;height:35rem;}
.bgbg{background-image:url("images/DOORBG.png");background-position:center;background-repeat:no-repeat;background-size:cover;height:45rem;display:flex;flex-wrap:wrap;align-items:end;}.transpLayer{color:#dedede;background-image:linear-gradient(to right,rgba(30,30,30,.9),rgba(255,255,255,.1));width:100%;height:5rem;display:flex;flex-wrap:wrap;align-items:end;}
+12 -3
View File
@@ -2,11 +2,20 @@
<div class="card">
<div class="card-header d-flex justify-content-between">
<span class="fs-5">LIST DOORS IN ORDER @idOrd</span>
<a class="btn btn-sm btn-success" href="/DoorDefinition?idOrd=@idOrd">+ Add new door</a>
<div>
<span class="fs-5">LIST DOORS IN ORDER <b>@idOrd</b></span>
</div>
<div>
<div class="input-group">
<select @bind="@currMeaUnit" class="form-select">
<option value="mm">mm</option>
<option value="inch">inch</option>
</select>
<button class="btn btn-sm btn-success" @onclick="() => createDoor()">+ Add new door</button>
</div>
</div>
</div>
<div class="card-body">
<DoorList currOrderId="@idOrd"></DoorList>
</div>
</div>
+85 -35
View File
@@ -1,59 +1,109 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components;
using System.Net.Http;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.Forms;
using Microsoft.AspNetCore.Components.Routing;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.Web.Virtualization;
using Microsoft.JSInterop;
using WebDoorCreator.UI;
using WebDoorCreator.UI.Components;
using WebDoorCreator.UI.Components.Buttons;
using WebDoorCreator.UI.Components.CompMan;
using WebDoorCreator.UI.Components.DoorMan;
using WebDoorCreator.UI.Components.DoorDef;
using WebDoorCreator.UI.Components.Gen;
using WebDoorCreator.UI.Components.Order;
using WebDoorCreator.UI.Components.Users;
using WebDoorCreator.UI.Shared;
using WebDoorCreator.Data.DbModels;
using Microsoft.AspNetCore.WebUtilities;
using WebDoorCreator.UI.Data;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.WebUtilities;
using System.Collections.Specialized;
using WebDoorCreator.Data.DbModels;
using WebDoorCreator.UI.Data;
namespace WebDoorCreator.UI.Pages
{
public partial class OrderDetails
{
#region Protected Properties
[Inject]
protected NavigationManager navManager { get; set; } = null!;
protected UserManager<IdentityUser> _userManager { get; set; } = null!;
protected DoorModel? currDoor { get; set; } = null;
protected int currDoorType { get; set; } = 0;
/// <summary>
/// Unità di misura selezionata
/// </summary>
protected string currMeaUnit { get; set; } = "mm";
protected List<DoorModel>? DoorsList { get; set; } = null;
protected int idOrd { get; set; } = -1;
[Inject]
protected NavigationManager NavManager { get; set; } = null!;
protected OrderStatusViewModel? OrderStatus { get; set; } = null;
[Inject]
protected WebDoorCreatorService WDService { get; set; } = null!;
protected int idOrd { get; set; } = 0;
protected OrderStatusViewModel? orderStatus { get; set; } = null;
private List<OrderStatusViewModel>? ListOrdersStatus = null;
[Inject]
protected WDCUserService WDCUService { get; set; } = null!;
#endregion Protected Properties
#region Protected Methods
protected override async Task OnInitializedAsync()
{
await Task.Delay(1);
var uri = navManager.ToAbsoluteUri(navManager.Uri);
var uri = NavManager.ToAbsoluteUri(NavManager.Uri);
if (QueryHelpers.ParseQuery(uri.Query).TryGetValue("idOrd", out var _idOrd))
{
idOrd = int.Parse(_idOrd);
}
}
#endregion Protected Methods
protected int currDoorType { get; set; } = 0;
protected DoorModel? currDoor { get; set; } = null;
protected List<DoorModel>? DoorsList { get; set; } = null;
[Inject]
protected UserManager<IdentityUser> _userManager { get; set; } = null!;
#region Private Fields
private List<OrderStatusViewModel>?ListOrdersStatus = null;
protected async Task createDoor()
{
// conto le porte x questo ordine e uso x chiamata successiva...
var door4ord = await WDService.DoorGetByOrderId(idOrd);
int numDoors = door4ord?.Count + 1 ?? 1;
DateTime adesso = DateTime.Now;
// creo una nuova porta...
DoorModel newDoor = new DoorModel()
{
OrderId = idOrd,
MeasureUnit = currMeaUnit,
UserIdIns = WDCUService.userId,
UserIdMod = WDCUService.userId,
UserIdLock = WDCUService.userId,
DateIns = adesso,
DateMod = adesso,
DateLockExpiry = adesso.AddHours(1),
DoorDescript = $"ORD {idOrd} | Door {numDoors:00}",
DoorExtCode = $"ORD {idOrd} | Ext Code --",
Quantity = 1,
UnitCost = 0,
TypeId = 1
};
// chiamo metodo x insert...
var doorId = await WDService.DoorInsert(newDoor);
// aggiungo le lavorazioni standard...
var doorOpList = await WDService.DoorOpGetDefault();
List<DoorOpModel> listOp = doorOpList
.Select(x => new DoorOpModel()
{
DateIns = adesso,
DateMod = adesso,
UserIdIns = WDCUService.userId,
UserIdMod = WDCUService.userId,
DoorOpTypId = x.DoorOpTypId,
DoorId = doorId,
JsoncConfigVal = x.JsoncConfig
})
.ToList();
// salvo Door OP associate
await WDService.DoorOpInsert(doorId, listOp);
// rimando alla pagina... dettaglio...
NavManager.NavigateTo($"/DoorDefinition?idOrd={idOrd}&idDoor={doorId}");
}
#endregion Private Fields
}
}
+1 -1
View File
@@ -42,7 +42,7 @@
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
@if (orderCodExt != "")
{
<button type="button" class="btn btn-primary" @onclick="()=>addNewOrder(context.User.Identity?.Name!)">Save changes</button>
<button type="button" class="btn btn-primary" @onclick="()=>addNewOrder(context.User.Identity?.Name!)" data-bs-dismiss="modal">Save changes</button>
}
</div>
</div>
@@ -6,7 +6,7 @@ using WebDoorCreator.UI.Data;
namespace WebDoorCreator.UI.Pages
{
public partial class OrdersHomePage:IDisposable
public partial class OrdersHomePage : IDisposable
{
#region Protected Properties
@@ -116,7 +116,13 @@ namespace WebDoorCreator.UI.Pages
if (done)
{
NavManager.NavigateTo(NavManager.Uri, true);
// flush dati ordine + reload
await WDService.OrdersFlushCache();
orderCodExt = "";
orderDescr = "";
doorChange = true;
//// da eliminare...
//NavManager.NavigateTo(NavManager.Uri, true);
}
}
@@ -189,7 +195,7 @@ namespace WebDoorCreator.UI.Pages
protected int userCurrCompany { get; set; }
protected async Task ReloadData()
{
DoorsList = await WDService.DoorsGetByOrderId(currOrderId);
DoorsList = await WDService.DoorGetByOrderId(currOrderId);
}
#endregion Private Methods
+15 -5
View File
@@ -4,13 +4,23 @@
<AuthorizeView>
<Authorized>
<div class="">
<div class="pb-0 d-flex justify-content-start">
<div class="fs-5 @selectedComp" @onclick="()=>doShowComp()">
Company management
<div class="d-flex justify-content-between">
<div class="pb-0 d-flex justify-content-start">
<div class="fs-5 @selectedComp" @onclick="()=>doShowComp()">
Company management
</div>
<div class="fs-5 @selectedUser" @onclick="()=>doShowUser()">
Users Management
</div>
</div>
<div class="fs-5 @selectedUser" @onclick="()=>doShowUser()">
Users Management
<div>
<button class="btn btn-warning" @onclick="()=>refreshHw()">HARDWARE REFRESH</button>
<button class="btn btn-info" @onclick="()=>refreshVoc()">VOCABULARY REFRESH</button>
<button class="btn btn-info" @onclick="()=>refreshFiles()">FILES REFRESH</button>
</div>
<!--NON USO TYPE FILE PERCHE' NON PRENDE IL PATH DEL FILE MA RESTITUISCE C:\\fakepath-->
<input @bind-value="@defaultPath" />
</div>
<div class="listContainer">
<!-- Button trigger modal -->
@@ -132,6 +132,10 @@ namespace WebDoorCreator.UI.Pages
set { _passwordConfirm = value; }
}
protected string _defaultPath = "";
protected string defaultPath { get; set; } = "";
protected bool isCompShow { get; set; } = true;
protected async Task addModNewCompany()
@@ -285,5 +289,20 @@ namespace WebDoorCreator.UI.Pages
await Task.Delay(1);
isCompShow = false;
}
protected async Task refreshHw()
{
await Task.Delay(1);
await WDService.CompoListSetAll(@$"{defaultPath}");
}
protected async Task refreshVoc()
{
await Task.Delay(1);
await WDService.VocLemmaInsert(@$"{defaultPath}");
}
protected async Task refreshFiles()
{
await Task.Delay(1);
await WDService.ListValuesInsert(@$"{defaultPath}");
}
}
}
+1
View File
@@ -51,6 +51,7 @@ builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton<WebDoorCreatorService>();
builder.Services.AddScoped<WDCUserService>();
builder.Services.AddSingleton<WDCVocabularyService>();
builder.Services.AddScoped<AuthenticationStateProvider, RevalidatingIdentityAuthenticationStateProvider<IdentityUser>>();
builder.Services.AddHttpContextAccessor();
builder.Services.AddSingleton<IConnectionMultiplexer>(redisMultiplexer);
@@ -16,6 +16,7 @@
<PackageReference Include="Blazored.LocalStorage" Version="4.3.0" />
<PackageReference Include="Blazored.SessionStorage" Version="2.3.0" />
<PackageReference Include="EgwCoreLib.Razor" Version="1.4.2303.215" />
<PackageReference Include="EntityFrameworkCore.SqlServer.HierarchyId" Version="3.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="6.0.11" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.14" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="6.0.14" />
@@ -38,6 +39,7 @@
<ItemGroup>
<Folder Include="Areas\Identity\Data\" />
<Folder Include="wwwroot\images\" />
<Folder Include="wwwroot\DoorOpTypeImg\" />
</ItemGroup>
<ItemGroup>
+1
View File
@@ -15,6 +15,7 @@
@using WebDoorCreator.UI.Components.Gen
@using WebDoorCreator.UI.Components.Order
@using WebDoorCreator.UI.Components.Users
@using WebDoorCreator.UI.Components.Hardware
@using WebDoorCreator.UI.Shared
@using WebDoorCreator.Data.DbModels
+4
View File
@@ -22,5 +22,9 @@
{
"outputFile": "Pages/Index.razor.css",
"inputFile": "Pages/Index.razor.less"
},
{
"outputFile": "Components/Hardware/HardwareList.razor.css",
"inputFile": "Components/Hardware/HardwareList.razor.less"
}
]