diff --git a/Frontend/src/app/services/notifications.service.ts b/Frontend/src/app/services/notifications.service.ts
index dc7e218..7419307 100644
--- a/Frontend/src/app/services/notifications.service.ts
+++ b/Frontend/src/app/services/notifications.service.ts
@@ -9,13 +9,13 @@ import moment, { Moment } from 'moment';
})
export class NotificationsService {
- public messages: Message[] = [];
+ public messages: IMessage[] = [];
private handler?: MatBottomSheetRef;
constructor(
private bottomSheet$: MatBottomSheet
) { }
- public add(message: Message): string {
+ public add(message: IMessage): string {
message.id = uuidv4();
message.createdAt = moment();
this.messages.push(message);
@@ -55,13 +55,13 @@ export class NotificationsService {
return a.createdAt && a.createdAt.isAfter(b.createdAt) ? 1 : -1;
})
}
- doAction(message: Message) {
+ doAction(message: IMessage) {
if (message.action) { message.action(); }
this.remove(message.id, false);
}
}
-interface Message {
+interface IMessage {
id?: string;
text: string;
duration?: number;
diff --git a/WebAPI/Migrations/20230626171614_LayerType.Designer.cs b/WebAPI/Migrations/20230626171614_LayerType.Designer.cs
new file mode 100644
index 0000000..a323da0
--- /dev/null
+++ b/WebAPI/Migrations/20230626171614_LayerType.Designer.cs
@@ -0,0 +1,201 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using WebAPI;
+
+#nullable disable
+
+namespace WebAPI.Migrations
+{
+ [DbContext(typeof(AppDbContext))]
+ [Migration("20230626171614_LayerType")]
+ partial class LayerType
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.7")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("WebAPI.Models.Layer", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("CreatedById")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("ModifiedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("ModifiedById")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Number")
+ .HasColumnType("int");
+
+ b.Property("Source")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Type")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CreatedById");
+
+ b.HasIndex("ModifiedById");
+
+ b.ToTable("Layers");
+ });
+
+ modelBuilder.Entity("WebAPI.Models.Record", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Code")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("CreatedById")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Desc1")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Desc2")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Desc3")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Desc4")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Desc5")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LayerId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ModifiedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("ModifiedById")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Value")
+ .HasColumnType("real");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CreatedById");
+
+ b.HasIndex("LayerId");
+
+ b.HasIndex("ModifiedById");
+
+ b.ToTable("Records");
+ });
+
+ modelBuilder.Entity("WebAPI.Models.User", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("Email")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserName")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Users");
+ });
+
+ modelBuilder.Entity("WebAPI.Models.Layer", b =>
+ {
+ b.HasOne("WebAPI.Models.User", "CreatedBy")
+ .WithMany()
+ .HasForeignKey("CreatedById")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("WebAPI.Models.User", "ModifiedBy")
+ .WithMany()
+ .HasForeignKey("ModifiedById")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("CreatedBy");
+
+ b.Navigation("ModifiedBy");
+ });
+
+ modelBuilder.Entity("WebAPI.Models.Record", b =>
+ {
+ b.HasOne("WebAPI.Models.User", "CreatedBy")
+ .WithMany()
+ .HasForeignKey("CreatedById")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("WebAPI.Models.Layer", null)
+ .WithMany("Records")
+ .HasForeignKey("LayerId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("WebAPI.Models.User", "ModifiedBy")
+ .WithMany()
+ .HasForeignKey("ModifiedById")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("CreatedBy");
+
+ b.Navigation("ModifiedBy");
+ });
+
+ modelBuilder.Entity("WebAPI.Models.Layer", b =>
+ {
+ b.Navigation("Records");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/WebAPI/Migrations/20230626171614_LayerType.cs b/WebAPI/Migrations/20230626171614_LayerType.cs
new file mode 100644
index 0000000..fb0d12f
--- /dev/null
+++ b/WebAPI/Migrations/20230626171614_LayerType.cs
@@ -0,0 +1,29 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace WebAPI.Migrations
+{
+ ///
+ public partial class LayerType : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "Type",
+ table: "Layers",
+ type: "int",
+ nullable: false,
+ defaultValue: 0);
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "Type",
+ table: "Layers");
+ }
+ }
+}
diff --git a/WebAPI/Migrations/AppDbContextModelSnapshot.cs b/WebAPI/Migrations/AppDbContextModelSnapshot.cs
index 6725c5a..cc54bd9 100644
--- a/WebAPI/Migrations/AppDbContextModelSnapshot.cs
+++ b/WebAPI/Migrations/AppDbContextModelSnapshot.cs
@@ -1,196 +1,198 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using WebAPI;
-
-#nullable disable
-
-namespace WebAPI.Migrations
-{
- [DbContext(typeof(AppDbContext))]
- partial class AppDbContextModelSnapshot : ModelSnapshot
- {
- protected override void BuildModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder
- .HasAnnotation("ProductVersion", "7.0.0")
- .HasAnnotation("Relational:MaxIdentifierLength", 128);
-
- SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
-
- modelBuilder.Entity("WebAPI.Models.Layer", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("uniqueidentifier");
-
- b.Property("CreatedAt")
- .HasColumnType("datetime2");
-
- b.Property("CreatedById")
- .HasColumnType("uniqueidentifier");
-
- b.Property("IsDeleted")
- .HasColumnType("bit");
-
- b.Property("ModifiedAt")
- .HasColumnType("datetime2");
-
- b.Property("ModifiedById")
- .HasColumnType("uniqueidentifier");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("Number")
- .IsRequired()
- .HasColumnType("int");
-
- b.Property("Source")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.HasKey("Id");
-
- b.HasIndex("CreatedById");
-
- b.HasIndex("ModifiedById");
-
- b.ToTable("Layers");
- });
-
- modelBuilder.Entity("WebAPI.Models.Record", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("uniqueidentifier");
-
- b.Property("Code")
- .IsRequired()
- .HasColumnType("nvarchar(max)");
-
- b.Property("CreatedAt")
- .HasColumnType("datetime2");
-
- b.Property("CreatedById")
- .HasColumnType("uniqueidentifier");
-
- b.Property("Desc1")
- .HasColumnType("nvarchar(max)");
-
- b.Property("Desc2")
- .HasColumnType("nvarchar(max)");
-
- b.Property("Desc3")
- .HasColumnType("nvarchar(max)");
-
- b.Property("Desc4")
- .HasColumnType("nvarchar(max)");
-
- b.Property("Desc5")
- .HasColumnType("nvarchar(max)");
-
- b.Property("IsDeleted")
- .HasColumnType("bit");
-
- b.Property("LayerId")
- .HasColumnType("uniqueidentifier");
-
- b.Property("ModifiedAt")
- .HasColumnType("datetime2");
-
- b.Property("ModifiedById")
- .HasColumnType("uniqueidentifier");
-
- b.Property("Value")
- .HasColumnType("real");
-
- b.HasKey("Id");
-
- b.HasIndex("CreatedById");
-
- b.HasIndex("LayerId");
-
- b.HasIndex("ModifiedById");
-
- b.ToTable("Records");
- });
-
- modelBuilder.Entity("WebAPI.Models.User", b =>
- {
- b.Property("Id")
- .ValueGeneratedOnAdd()
- .HasColumnType("uniqueidentifier");
-
- b.Property("CreatedAt")
- .HasColumnType("datetime2");
-
- b.Property("Email")
- .HasColumnType("nvarchar(max)");
-
- b.Property("UserName")
- .HasMaxLength(50)
- .HasColumnType("nvarchar(50)");
-
- b.HasKey("Id");
-
- b.ToTable("Users");
- });
-
- modelBuilder.Entity("WebAPI.Models.Layer", b =>
- {
- b.HasOne("WebAPI.Models.User", "CreatedBy")
- .WithMany()
- .HasForeignKey("CreatedById")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.HasOne("WebAPI.Models.User", "ModifiedBy")
- .WithMany()
- .HasForeignKey("ModifiedById")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("CreatedBy");
-
- b.Navigation("ModifiedBy");
- });
-
- modelBuilder.Entity("WebAPI.Models.Record", b =>
- {
- b.HasOne("WebAPI.Models.User", "CreatedBy")
- .WithMany()
- .HasForeignKey("CreatedById")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.HasOne("WebAPI.Models.Layer", null)
- .WithMany("Records")
- .HasForeignKey("LayerId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.HasOne("WebAPI.Models.User", "ModifiedBy")
- .WithMany()
- .HasForeignKey("ModifiedById")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("CreatedBy");
-
- b.Navigation("ModifiedBy");
- });
-
- modelBuilder.Entity("WebAPI.Models.Layer", b =>
- {
- b.Navigation("Records");
- });
-#pragma warning restore 612, 618
- }
- }
-}
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using WebAPI;
+
+#nullable disable
+
+namespace WebAPI.Migrations
+{
+ [DbContext(typeof(AppDbContext))]
+ partial class AppDbContextModelSnapshot : ModelSnapshot
+ {
+ protected override void BuildModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.7")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("WebAPI.Models.Layer", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("CreatedById")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("ModifiedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("ModifiedById")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Number")
+ .HasColumnType("int");
+
+ b.Property("Source")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Type")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CreatedById");
+
+ b.HasIndex("ModifiedById");
+
+ b.ToTable("Layers");
+ });
+
+ modelBuilder.Entity("WebAPI.Models.Record", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Code")
+ .IsRequired()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("CreatedById")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Desc1")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Desc2")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Desc3")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Desc4")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Desc5")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsDeleted")
+ .HasColumnType("bit");
+
+ b.Property("LayerId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ModifiedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("ModifiedById")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Value")
+ .HasColumnType("real");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CreatedById");
+
+ b.HasIndex("LayerId");
+
+ b.HasIndex("ModifiedById");
+
+ b.ToTable("Records");
+ });
+
+ modelBuilder.Entity("WebAPI.Models.User", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime2");
+
+ b.Property("Email")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserName")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Users");
+ });
+
+ modelBuilder.Entity("WebAPI.Models.Layer", b =>
+ {
+ b.HasOne("WebAPI.Models.User", "CreatedBy")
+ .WithMany()
+ .HasForeignKey("CreatedById")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("WebAPI.Models.User", "ModifiedBy")
+ .WithMany()
+ .HasForeignKey("ModifiedById")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("CreatedBy");
+
+ b.Navigation("ModifiedBy");
+ });
+
+ modelBuilder.Entity("WebAPI.Models.Record", b =>
+ {
+ b.HasOne("WebAPI.Models.User", "CreatedBy")
+ .WithMany()
+ .HasForeignKey("CreatedById")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("WebAPI.Models.Layer", null)
+ .WithMany("Records")
+ .HasForeignKey("LayerId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("WebAPI.Models.User", "ModifiedBy")
+ .WithMany()
+ .HasForeignKey("ModifiedById")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("CreatedBy");
+
+ b.Navigation("ModifiedBy");
+ });
+
+ modelBuilder.Entity("WebAPI.Models.Layer", b =>
+ {
+ b.Navigation("Records");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/WebAPI/Models/Layer.cs b/WebAPI/Models/Layer.cs
index 88c407a..12c3b0a 100644
--- a/WebAPI/Models/Layer.cs
+++ b/WebAPI/Models/Layer.cs
@@ -19,6 +19,8 @@ namespace WebAPI.Models
[Required]
public string? Name { get; set; }
[Required]
+ public LayerType Type { get; set; }
+ [Required]
public DateTime CreatedAt { get; set; }
[Required]
public DateTime ModifiedAt { get; set; }
diff --git a/WebAPI/appsettings.Development.json b/WebAPI/appsettings.Development.json
index 7cd5053..bc0bcd1 100644
--- a/WebAPI/appsettings.Development.json
+++ b/WebAPI/appsettings.Development.json
@@ -8,7 +8,7 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
- "SQLDatabase": "Server=tcp:127.0.0.1,1433;Initial Catalog=diuna;Persist Security Info=False;User ID=SA;Password=v](8Lc|RfG;MultipleActiveResultSets=False;Encrypt=False;TrustServerCertificate=False;Connection Timeout=30;"
+ "SQLDatabase": "Server=tcp:127.0.0.1,1433;Initial Catalog=diunabi-dev;Persist Security Info=False;User ID=SA;Password=v](8Lc|RfG;MultipleActiveResultSets=False;Encrypt=False;TrustServerCertificate=False;Connection Timeout=30;"
},
"GoogleClientId": "107631825312-bkfe438ehr9k9ecb2h76g802tj6advma.apps.googleusercontent.com",
"Secret": "8393AF8EAEF8478CB738D44858690F9C7E2D19F65896DD9FBAA3EB2A6F493E80",