From 690332d5b58cdd70973e8c44c9fbcf90b718d272 Mon Sep 17 00:00:00 2001 From: "jozsef.b@aycode.com" <9Rj@D}fVwBaN> Date: Thu, 23 Nov 2023 22:38:17 +0100 Subject: [PATCH] database improvements... --- TIAM.Core/ProductType.cs | 6 ++++ TIAM.Core/TIAM.Core.csproj | 9 +++++ TIAM.Database.Test/DatabaseTest.cs | 5 ++- TIAM.Database.Test/TIAM.Database.Test.csproj | 6 ++++ TIAM.Database/DataLayers/TiamDalBase.cs | 17 ++++++++++ .../TransferDestinationDal.cs | 12 +++++-- TIAM.Database/DataLayers/Users/UserDal.cs | 16 +++++++++ TIAM.Database/DbContexts/TiamDbContextBase.cs | 6 ++-- TIAM.Database/DbContexts/UserDbContext.cs | 34 +++++++++++++++++++ .../Permissions/PermissionContextMapping.cs | 22 ++++++++++++ TIAM.Entities/Permissions/PermissionGroup.cs | 19 +++++++++++ .../Permissions/PermissionGroupUserMapping.cs | 18 ++++++++++ TIAM.Entities/Permissions/PermissionsType.cs | 21 ++++++++++++ TIAM.Entities/Products/Product.cs | 25 ++++++++++++++ TIAM.Entities/Products/ServiceProvider.cs | 19 +++++++++++ TIAM.Entities/TIAM.Entities.csproj | 8 +++++ TIAM.Entities/Users/AssignedUser.cs | 20 +++++++++++ TIAMSharedUI/Shared/MainLayout.razor | 3 ++ .../Controllers/TransferDataAPIController.cs | 11 +++--- TIAMWebApp/Server/Program.cs | 7 +++- TourIAmProject.sln | 14 +++++--- 21 files changed, 283 insertions(+), 15 deletions(-) create mode 100644 TIAM.Core/ProductType.cs create mode 100644 TIAM.Core/TIAM.Core.csproj create mode 100644 TIAM.Database/DataLayers/TiamDalBase.cs create mode 100644 TIAM.Database/DataLayers/Users/UserDal.cs create mode 100644 TIAM.Database/DbContexts/UserDbContext.cs create mode 100644 TIAM.Entities/Permissions/PermissionContextMapping.cs create mode 100644 TIAM.Entities/Permissions/PermissionGroup.cs create mode 100644 TIAM.Entities/Permissions/PermissionGroupUserMapping.cs create mode 100644 TIAM.Entities/Permissions/PermissionsType.cs create mode 100644 TIAM.Entities/Products/Product.cs create mode 100644 TIAM.Entities/Products/ServiceProvider.cs create mode 100644 TIAM.Entities/Users/AssignedUser.cs diff --git a/TIAM.Core/ProductType.cs b/TIAM.Core/ProductType.cs new file mode 100644 index 00000000..8e236f09 --- /dev/null +++ b/TIAM.Core/ProductType.cs @@ -0,0 +1,6 @@ +namespace TIAM.Core; + +public enum ProductType : byte +{ + +} \ No newline at end of file diff --git a/TIAM.Core/TIAM.Core.csproj b/TIAM.Core/TIAM.Core.csproj new file mode 100644 index 00000000..cfadb03d --- /dev/null +++ b/TIAM.Core/TIAM.Core.csproj @@ -0,0 +1,9 @@ + + + + net7.0 + enable + enable + + + diff --git a/TIAM.Database.Test/DatabaseTest.cs b/TIAM.Database.Test/DatabaseTest.cs index 048323b9..49945667 100644 --- a/TIAM.Database.Test/DatabaseTest.cs +++ b/TIAM.Database.Test/DatabaseTest.cs @@ -1,14 +1,17 @@ +using AyCode.Database.Tests; using Microsoft.EntityFrameworkCore; using TIAM.Database.DbContexts; namespace TIAM.Database.Test { [TestClass] - public class DatabaseTest + public class DatabaseTest : DatabaseTestModelBase { + [TestInitialize] public void Setup() { + } [TestCleanup] diff --git a/TIAM.Database.Test/TIAM.Database.Test.csproj b/TIAM.Database.Test/TIAM.Database.Test.csproj index 7b3cce2c..285d6b0a 100644 --- a/TIAM.Database.Test/TIAM.Database.Test.csproj +++ b/TIAM.Database.Test/TIAM.Database.Test.csproj @@ -32,9 +32,15 @@ ..\..\AyCode.Core\AyCode.Database\bin\Debug\net7.0\AyCode.Core.Server.dll + + ..\..\AyCode.Core\AyCode.Database.Tests\bin\Debug\net7.0\AyCode.Core.Tests.dll + ..\..\AyCode.Core\AyCode.Database\bin\Debug\net7.0\AyCode.Database.dll + + ..\..\AyCode.Core\AyCode.Database.Tests\bin\Debug\net7.0\AyCode.Database.Tests.dll + ..\..\AyCode.Core\AyCode.Database\bin\Debug\net7.0\AyCode.Entities.dll diff --git a/TIAM.Database/DataLayers/TiamDalBase.cs b/TIAM.Database/DataLayers/TiamDalBase.cs new file mode 100644 index 00000000..1fa8252f --- /dev/null +++ b/TIAM.Database/DataLayers/TiamDalBase.cs @@ -0,0 +1,17 @@ +using AyCode.Database; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TIAM.Database.DbContexts; + +namespace TIAM.Database.DataLayers; + +public class TiamDalBase : DalBase where TDbContext : TiamDbContextBase +{ + //public TiamDalBase() : base(new TransferDestinationDbContext("DeveloperDbConnection")) + //{ + // Ctx.Database. } +} \ No newline at end of file diff --git a/TIAM.Database/DataLayers/TransferDestinations/TransferDestinationDal.cs b/TIAM.Database/DataLayers/TransferDestinations/TransferDestinationDal.cs index b80ac84c..62b2be75 100644 --- a/TIAM.Database/DataLayers/TransferDestinations/TransferDestinationDal.cs +++ b/TIAM.Database/DataLayers/TransferDestinations/TransferDestinationDal.cs @@ -3,10 +3,16 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using AyCode.Database; +using Microsoft.Identity.Client; +using TIAM.Database.DbContexts; +using TIAM.Entities.TransferDestinations; -namespace TIAM.Database.DataLayers.TransferDestinations +namespace TIAM.Database.DataLayers.TransferDestinations; + +public class TransferDestinationDal : TiamDalBase { - internal class TransferDestinationDal + public TransferDestinationDal() : base() { } -} +} \ No newline at end of file diff --git a/TIAM.Database/DataLayers/Users/UserDal.cs b/TIAM.Database/DataLayers/Users/UserDal.cs new file mode 100644 index 00000000..4bf40c6c --- /dev/null +++ b/TIAM.Database/DataLayers/Users/UserDal.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TIAM.Database.DbContexts; + +namespace TIAM.Database.DataLayers.Users +{ + public class UserDal : TiamDalBase + { + public UserDal() : base() + { + } + } +} diff --git a/TIAM.Database/DbContexts/TiamDbContextBase.cs b/TIAM.Database/DbContexts/TiamDbContextBase.cs index 60f5d34e..fdd8247e 100644 --- a/TIAM.Database/DbContexts/TiamDbContextBase.cs +++ b/TIAM.Database/DbContexts/TiamDbContextBase.cs @@ -6,6 +6,7 @@ using System.Text; using System.Threading.Tasks; using AyCode.Database.DbContexts; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Options; namespace TIAM.Database.DbContexts { @@ -28,8 +29,9 @@ namespace TIAM.Database.DbContexts { base.OnConfiguring(optionsBuilder); - //var connString = "Data Source=185.51.190.197;Initial Catalog=TIAM_DEV;Trusted_Connection=false;Encrypt=false;TrustServerCertificate=True;Connect Timeout=200;User ID=Anata_Development_Team;Password=v6f_?xNfg9N1;MultipleActiveResultSets=true"; - //optionsBuilder.UseSqlServer(connString); + //optionsBuilder.UseSqlServer(Configuration.GetConnectionString("DeveloperDbConnection")); + var connString = "Data Source=185.51.190.197;Initial Catalog=TIAM_DEV;Trusted_Connection=false;Encrypt=false;TrustServerCertificate=True;Connect Timeout=200;User ID=Anata_Development_Team;Password=v6f_?xNfg9N1;MultipleActiveResultSets=true"; + optionsBuilder.UseSqlServer(connString); } } } diff --git a/TIAM.Database/DbContexts/UserDbContext.cs b/TIAM.Database/DbContexts/UserDbContext.cs new file mode 100644 index 00000000..91102201 --- /dev/null +++ b/TIAM.Database/DbContexts/UserDbContext.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using AyCode.Database.DbContexts; +using Microsoft.EntityFrameworkCore; +using TIAM.Entities.TransferDestinations; + +namespace TIAM.Database.DbContexts +{ + public class UserDbContext : TiamDbContextBase + { + public DbSet TransferDestinations { get; set; } + + public UserDbContext() //: this(string.Empty) + { + + } + + public UserDbContext(string name) : base(name) + { + } + + public UserDbContext(DbContextOptions options, string name) : base(options, name) + { + } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + base.OnConfiguring(optionsBuilder); + } + } +} diff --git a/TIAM.Entities/Permissions/PermissionContextMapping.cs b/TIAM.Entities/Permissions/PermissionContextMapping.cs new file mode 100644 index 00000000..9352f15a --- /dev/null +++ b/TIAM.Entities/Permissions/PermissionContextMapping.cs @@ -0,0 +1,22 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AyCode.Entities.Interfaces; +using AyCode.Interfaces.TimeStampInfo; + +namespace TIAM.Entities.Permissions; + +[Table("PermissionContextMapping")] +public class PermissionContextMapping : IEntityGuid, ITimeStampInfo +{ + [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] + public Guid Id { get; set; } + public Guid ContextId { get; set; } + public Guid SubjectId { get; set; } + + public short SubjectType { get; set; } + public int Permissions { get; set; } + public bool IsBuiltin { get; set; } + + public DateTime Created { get; set; } + public DateTime Modified { get; set; } +} \ No newline at end of file diff --git a/TIAM.Entities/Permissions/PermissionGroup.cs b/TIAM.Entities/Permissions/PermissionGroup.cs new file mode 100644 index 00000000..9dbedac8 --- /dev/null +++ b/TIAM.Entities/Permissions/PermissionGroup.cs @@ -0,0 +1,19 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AyCode.Entities.Interfaces; +using AyCode.Interfaces.TimeStampInfo; + +namespace TIAM.Entities.Permissions; + +[Table("PermissionGroups")] +public class PermissionGroup : IEntityGuid, ITimeStampInfo +{ + [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] + public Guid Id { get; set; } + + string GroupName { get; set; } + bool IsBuiltin { get; set; } + + public DateTime Created { get; set; } + public DateTime Modified { get; set; } +} \ No newline at end of file diff --git a/TIAM.Entities/Permissions/PermissionGroupUserMapping.cs b/TIAM.Entities/Permissions/PermissionGroupUserMapping.cs new file mode 100644 index 00000000..a01cbd26 --- /dev/null +++ b/TIAM.Entities/Permissions/PermissionGroupUserMapping.cs @@ -0,0 +1,18 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AyCode.Entities.Interfaces; +using AyCode.Interfaces.TimeStampInfo; + +namespace TIAM.Entities.Permissions; + +[Table("PermissionGroupUserMapping")] +public class PermissionGroupUserMapping : IEntityGuid, ITimeStampInfo +{ + [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] + public Guid Id { get; set; } + public Guid UserId { get; set; } + public Guid PermissionContextMappingId { get; set; } + + public DateTime Created { get; set; } + public DateTime Modified { get; set; } +} \ No newline at end of file diff --git a/TIAM.Entities/Permissions/PermissionsType.cs b/TIAM.Entities/Permissions/PermissionsType.cs new file mode 100644 index 00000000..1aa7dddd --- /dev/null +++ b/TIAM.Entities/Permissions/PermissionsType.cs @@ -0,0 +1,21 @@ + +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AyCode.Entities.Interfaces; +using AyCode.Interfaces.TimeStampInfo; + +namespace TIAM.Entities.Permissions; + +[Table("PermissionsTypes")] +public class PermissionsType : IEntityGuid, ITimeStampInfo +{ + [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] + public Guid Id { get; set; } + public Guid ContextId { get; set; } + + public string PermissionName { get; set; } + public int PermissionBit { get; set; } + + public DateTime Created { get; set; } + public DateTime Modified { get; set; } +} \ No newline at end of file diff --git a/TIAM.Entities/Products/Product.cs b/TIAM.Entities/Products/Product.cs new file mode 100644 index 00000000..42610f66 --- /dev/null +++ b/TIAM.Entities/Products/Product.cs @@ -0,0 +1,25 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AyCode.Entities.Interfaces; +using AyCode.Interfaces.TimeStampInfo; +using TIAM.Core; + +namespace TIAM.Entities.Products; + +[Table("Product")] +public class Product : IEntityGuid, ITimeStampInfo +{ + [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] + public Guid Id { get; set; } + + public ProductType ProductType { get; set; } + public Guid UsermediaId { get; set; } + + public string Name { get; set; } + public string Description { get; set; } + public float Price { get; set; } + public string JsonDetails { get; set; } + + public DateTime Created { get; set; } + public DateTime Modified { get; set; } +} \ No newline at end of file diff --git a/TIAM.Entities/Products/ServiceProvider.cs b/TIAM.Entities/Products/ServiceProvider.cs new file mode 100644 index 00000000..3a14b6ad --- /dev/null +++ b/TIAM.Entities/Products/ServiceProvider.cs @@ -0,0 +1,19 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AyCode.Entities.Interfaces; +using AyCode.Interfaces.TimeStampInfo; + +namespace TIAM.Entities.Products; + +[Table("ServiceProvider")] +public class ServiceProvider : IEntityGuid, ITimeStampInfo +{ + [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] + public Guid Id { get; set; } + public Guid OwnerId { get; set; } + + public string Name { get; set; } + + public DateTime Created { get; set; } + public DateTime Modified { get; set; } +} \ No newline at end of file diff --git a/TIAM.Entities/TIAM.Entities.csproj b/TIAM.Entities/TIAM.Entities.csproj index f0eba279..488d1e2f 100644 --- a/TIAM.Entities/TIAM.Entities.csproj +++ b/TIAM.Entities/TIAM.Entities.csproj @@ -27,4 +27,12 @@ + + + + + + + + diff --git a/TIAM.Entities/Users/AssignedUser.cs b/TIAM.Entities/Users/AssignedUser.cs new file mode 100644 index 00000000..d5e7a2c2 --- /dev/null +++ b/TIAM.Entities/Users/AssignedUser.cs @@ -0,0 +1,20 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using AyCode.Entities.Interfaces; +using AyCode.Interfaces.TimeStampInfo; + +namespace TIAM.Entities.Users; + +[Table("AssignedUser")] +public class AssignedUser : IEntityGuid, ITimeStampInfo +{ + [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] + public Guid Id { get; set; } + public Guid ProductId { get; set; } + public Guid EmployeeUserId { get; set; } + + public int UserRoles { get; set; } + + public DateTime Created { get; set; } + public DateTime Modified { get; set; } +} \ No newline at end of file diff --git a/TIAMSharedUI/Shared/MainLayout.razor b/TIAMSharedUI/Shared/MainLayout.razor index 4598e1e2..6cfaacfd 100644 --- a/TIAMSharedUI/Shared/MainLayout.razor +++ b/TIAMSharedUI/Shared/MainLayout.razor @@ -1,5 +1,6 @@ @inherits LayoutComponentBase @using TIAMWebApp.Shared.Application.Interfaces +@using TIAMSharedUI.Pages @inject IUserDataService UserDataService; @inject IJSRuntime jsRuntime @@ -10,6 +11,8 @@
+ +
@{ diff --git a/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs b/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs index 74d6d6ef..e8f798b5 100644 --- a/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs +++ b/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs @@ -1,6 +1,9 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System.Reflection.Metadata; +using TIAM.Database.DataLayers; +using TIAM.Database.DataLayers.TransferDestinations; +using TIAM.Database.DataLayers.Users; using TIAM.Database.DbContexts; using TIAM.Entities.TransferDestinations; using TIAMWebApp.Shared.Application.Models; @@ -24,13 +27,13 @@ namespace TIAMWebApp.Server.Controllers //}; - private readonly TransferDestinationDbContext _transferDestinationDbContext; + private readonly UserDal _userDal; private readonly ILogger _logger; - public TransferDataAPIController(ILogger logger, TransferDestinationDbContext transferDestinationDbContext) + public TransferDataAPIController(ILogger logger, UserDal userDal) { _logger = logger; - _transferDestinationDbContext = transferDestinationDbContext; + _userDal = userDal; } [HttpGet] @@ -38,7 +41,7 @@ namespace TIAMWebApp.Server.Controllers { //return new JsonResult(await _transferDestinationDbContext.TransferDestinations.ToListAsync()); - var result = await _transferDestinationDbContext.TransferDestinations.ToListAsync(); + var result = await _userDal.Ctx.TransferDestinations.ToListAsync(); return result; } } diff --git a/TIAMWebApp/Server/Program.cs b/TIAMWebApp/Server/Program.cs index c833b303..fd700ba9 100644 --- a/TIAMWebApp/Server/Program.cs +++ b/TIAMWebApp/Server/Program.cs @@ -4,8 +4,11 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using TIAM.Database.DataLayers; using TIAM.Entities.TransferDestinations; using TIAM.Database.DbContexts; +using TIAM.Database.DataLayers.TransferDestinations; +using TIAM.Database.DataLayers.Users; var builder = WebApplication.CreateBuilder(args); @@ -13,7 +16,9 @@ var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllersWithViews(); builder.Services.AddRazorPages(); -builder.Services.AddDbContext(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DeveloperDbConnection")));; +//builder.Services.AddDbContext(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DeveloperDbConnection"))); +//builder.Services.AddScoped>(x => x.GetService()); +builder.Services.AddScoped(); var app = builder.Build(); diff --git a/TourIAmProject.sln b/TourIAmProject.sln index ac142c52..ed213675 100644 --- a/TourIAmProject.sln +++ b/TourIAmProject.sln @@ -13,13 +13,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TIAMMobileApp", "TIAMMobile EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TIAMSharedUI", "TIAMSharedUI\TIAMSharedUI.csproj", "{3A24B495-45C4-4B38-B5C3-B1FD83490764}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TIAM.Database", "TIAM.Database\TIAM.Database.csproj", "{DABD68DB-9C9E-4A05-961F-3F1E4CAFB67C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TIAM.Database", "TIAM.Database\TIAM.Database.csproj", "{DABD68DB-9C9E-4A05-961F-3F1E4CAFB67C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TIAM.Database.Test", "TIAM.Database.Test\TIAM.Database.Test.csproj", "{E6DD4AC5-A797-4341-8B70-E2AF647E2AE2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TIAM.Database.Test", "TIAM.Database.Test\TIAM.Database.Test.csproj", "{E6DD4AC5-A797-4341-8B70-E2AF647E2AE2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TIAM.Entities", "TIAM.Entities\TIAM.Entities.csproj", "{1DAB894A-376F-4F94-BDF1-452F901941F7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TIAM.Entities", "TIAM.Entities\TIAM.Entities.csproj", "{1DAB894A-376F-4F94-BDF1-452F901941F7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TIAM.Entities.Server", "TIAM.Entities.Server\TIAM.Entities.Server.csproj", "{BDDF5F32-D275-4BBB-9C81-8DCB1025A935}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TIAM.Entities.Server", "TIAM.Entities.Server\TIAM.Entities.Server.csproj", "{BDDF5F32-D275-4BBB-9C81-8DCB1025A935}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TIAM.Core", "TIAM.Core\TIAM.Core.csproj", "{4FDE0CD3-5914-4919-933B-6B0E04275313}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -65,6 +67,10 @@ Global {BDDF5F32-D275-4BBB-9C81-8DCB1025A935}.Debug|Any CPU.Build.0 = Debug|Any CPU {BDDF5F32-D275-4BBB-9C81-8DCB1025A935}.Release|Any CPU.ActiveCfg = Release|Any CPU {BDDF5F32-D275-4BBB-9C81-8DCB1025A935}.Release|Any CPU.Build.0 = Release|Any CPU + {4FDE0CD3-5914-4919-933B-6B0E04275313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4FDE0CD3-5914-4919-933B-6B0E04275313}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4FDE0CD3-5914-4919-933B-6B0E04275313}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4FDE0CD3-5914-4919-933B-6B0E04275313}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE