Add ToJson(); Add Address; Implement AcAddress and relations; refactoring, improvements, fixes, etc...
This commit is contained in:
parent
c3d2c5014a
commit
027344fe30
|
|
@ -0,0 +1,8 @@
|
|||
namespace TIAM.Core.Enums;
|
||||
|
||||
public enum PriceType : byte
|
||||
{
|
||||
NotSet = 5,
|
||||
Fix = 10,
|
||||
Calculated = 15
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
namespace TIAM.Core;
|
||||
namespace TIAM.Core.Enums;
|
||||
|
||||
public enum ProductType : byte
|
||||
{
|
||||
|
|
@ -5,19 +5,23 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AyCode.Database.DataLayers.Users;
|
||||
using AyCode.Utils.Extensions;
|
||||
using Newtonsoft.Json;
|
||||
using TIAM.Database.DataLayers.Admins;
|
||||
using TIAM.Database.DataLayers.ServiceProviders;
|
||||
using TIAM.Database.DataLayers.Users;
|
||||
using TIAM.Database.DbContexts.Admins;
|
||||
using TIAM.Database.DbContexts.ServiceProviders;
|
||||
using TIAM.Database.DbSets.Permissions;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.Users;
|
||||
using TIAM.Models.Dtos.Users;
|
||||
using TIAM.Entities.TransferDestinations;
|
||||
|
||||
namespace TIAM.Database.Test
|
||||
{
|
||||
[TestClass]
|
||||
public class ServiceProviderDalTest : AcDatabaseTestModelBase<ServiceProviderDal, ServiceProviderDbContext>
|
||||
public class AdminDalTest : AcDatabaseTestModelBase<AdminDal, AdminDbContext>
|
||||
{
|
||||
[TestInitialize]
|
||||
public void Setup()
|
||||
|
|
@ -90,7 +94,10 @@ namespace TIAM.Database.Test
|
|||
var user = Dal.GetUserById(userId);
|
||||
|
||||
Assert.IsNotNull(user);
|
||||
|
||||
Assert.IsTrue(user.Id == userId, "user.Id != userId");
|
||||
Assert.IsTrue(user.UserProductMappings.Count > 0, "UserProductMappings count: 0");
|
||||
|
||||
Assert.IsNotNull(user.UserProductMappings[0].Product, "Product is null");
|
||||
}
|
||||
|
||||
|
|
@ -104,6 +111,8 @@ namespace TIAM.Database.Test
|
|||
Assert.IsNotNull(userProductMapping);
|
||||
Assert.IsNotNull(userProductMapping.User, "User is null");
|
||||
Assert.IsNotNull(userProductMapping.Product, "Product is null");
|
||||
|
||||
Assert.IsTrue(userProductMapping.Id == userProductMappingId, "userProductMapping.Id != userProductMappingId");
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
|
|
@ -129,6 +138,8 @@ namespace TIAM.Database.Test
|
|||
Assert.IsNotNull(userModel.UserDto);
|
||||
Assert.IsNotNull(userModel.Profile);
|
||||
|
||||
Assert.IsTrue(userModel.Id == userId, "userModel.Id != userId");
|
||||
|
||||
if (userId != Guid.Parse("540271F6-C604-4C16-8160-D5A7CAFEDF00")) return; //csak az "540271F6.."-nek van product-ja! - J.
|
||||
|
||||
Assert.IsTrue(userModel.Products.Count > 0);
|
||||
|
|
@ -137,28 +148,62 @@ namespace TIAM.Database.Test
|
|||
Assert.IsTrue(userModel.ServiceProviders.Count > 0);
|
||||
Assert.IsTrue(userModel.UserToServiceProviders.Count > 0);
|
||||
}
|
||||
//[TestMethod]
|
||||
//[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
|
||||
//public void SerializeUser_ReturnDeserializedUser_WhenUserAndRelationsExists(string userIdString)
|
||||
//{
|
||||
// var userId = Guid.Parse(userIdString);
|
||||
// var user = Dal.GetUserProductMappingById(userId);
|
||||
|
||||
// JsonSerializerSettings options = new()
|
||||
// {
|
||||
// ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
|
||||
// //NullValueHandling = NullValueHandling.Ignore
|
||||
// };
|
||||
[TestMethod]
|
||||
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
|
||||
[DataRow("dcf451d2-cc4c-4ac2-8c1f-da00041be1fd")]
|
||||
[DataRow("ac612aa8-863b-4b4f-9d63-f5d261b5c5f9")]
|
||||
public void SerializeUserEntity_ReturnDeserializedUser_WhenUserAndRelationsExists(string userIdString)
|
||||
{
|
||||
var userId = Guid.Parse(userIdString);
|
||||
var userJson = Dal.GetUserJsonById(userId);
|
||||
|
||||
// var serializedUser = JsonConvert.SerializeObject(user, options);
|
||||
// user = JsonConvert.DeserializeObject<User>(serializedUser);
|
||||
Assert.IsFalse(userJson?.IsNullOrWhiteSpace());
|
||||
|
||||
// Assert.IsNotNull(user);
|
||||
// Assert.IsNotNull(user.Products);
|
||||
// Assert.IsNotNull(user.UserProductMappings);
|
||||
// Assert.IsNotNull(user.UserProductMappings.FirstOrDefault()?.Product);
|
||||
var user = JsonConvert.DeserializeObject<User>(userJson);
|
||||
|
||||
// Assert.IsTrue(user.Products.Count > 0);
|
||||
//}
|
||||
Assert.IsNotNull(user);
|
||||
Assert.IsNotNull(user.Profile);
|
||||
|
||||
Assert.IsTrue(user.Id == userId, "user.Id != userId");
|
||||
|
||||
if (userId != Guid.Parse("540271F6-C604-4C16-8160-D5A7CAFEDF00")) return; //csak az "540271F6.."-nek van product-ja! - J.
|
||||
|
||||
Assert.IsTrue(user.Products.Count > 0);
|
||||
Assert.IsTrue(user.UserProductMappings.Count > 0);
|
||||
|
||||
Assert.IsTrue(user.ServiceProviders.Count > 0);
|
||||
Assert.IsTrue(user.UserToServiceProviders.Count > 0);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void SerializeUsers_ReturnDeserializedUsers_WhenUsersAndRelationsExists()
|
||||
{
|
||||
var userJson = Dal.GetUsersJson();
|
||||
|
||||
Assert.IsFalse(userJson.IsNullOrWhiteSpace());
|
||||
|
||||
var users = JsonConvert.DeserializeObject<List<User>>(userJson);
|
||||
|
||||
Assert.IsNotNull(users);
|
||||
Assert.IsTrue(users.Count>0);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[DataRow("273EFE3C-D19F-4C2A-BF19-7397DC835C60")]
|
||||
public void GetTransferDestionationById_ReturnsTransferDestination_WhenHasAddressRelation(string transferDestinationIdString)
|
||||
{
|
||||
var transferDestinationId = Guid.Parse(transferDestinationIdString);
|
||||
var transferDestination = Dal.GetTransferDestinationById(transferDestinationId);
|
||||
|
||||
Assert.IsNotNull(transferDestination);
|
||||
Assert.IsNotNull(transferDestination.Address);
|
||||
|
||||
Assert.IsTrue(transferDestination.Id == transferDestinationId, "transferDestination.Id != transferDestinationId");
|
||||
|
||||
//Assert.IsTrue(user.UserProductMappings.Count > 0, "UserProductMappings count: 0");
|
||||
//Assert.IsNotNull(user.UserProductMappings[0].Product, "Product is null");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,51 +1,87 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using AyCode.Database.DbSets.Users;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.DataLayers.ServiceProviders;
|
||||
using TIAM.Database.DbContexts.Admins;
|
||||
using TIAM.Database.DbSets.Permissions;
|
||||
using TIAM.Database.DbSets.Products;
|
||||
using TIAM.Database.DbSets.Users;
|
||||
using TIAM.Entities.Permissions;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.TransferDestinations;
|
||||
using TIAM.Entities.Users;
|
||||
using TIAM.Models.Dtos.Users;
|
||||
|
||||
namespace TIAM.Database.DataLayers.Admins
|
||||
{
|
||||
public class AdminDal : DalBase<AdminDbContext>
|
||||
{
|
||||
|
||||
public AdminDal() : base()
|
||||
{
|
||||
}
|
||||
|
||||
public Task<List<User>> GetUsersAsync()
|
||||
{
|
||||
return Context.Users.ToListAsync();
|
||||
}
|
||||
public TransferDestination? GetTransferDestinationById(Guid transferDestinationId, bool autoInclude = false) => Session(ctx=>ctx.TransferDestinations.FirstOrDefault(x=>x.Id == transferDestinationId));
|
||||
|
||||
public Task<User?> GetUserByEmailAsync(string email)
|
||||
{
|
||||
Console.WriteLine($"Getting user from db {email}");
|
||||
var emailLower = email.ToLower();
|
||||
return Context.Users.SingleOrDefaultAsync(x=>x.EmailAddress.ToLower() == emailLower);
|
||||
}
|
||||
public User? GetUserById(Guid userId, bool autoInclude = false) => Session(x => x.GetUserById(userId, autoInclude));
|
||||
public User? GetUserByEmail(string email, bool autoInclude = false) => Session(x => x.GetUserByEmail(email, autoInclude));
|
||||
|
||||
public Task<bool> CreateUserAsync(User user)
|
||||
{
|
||||
user.Created = DateTime.UtcNow;
|
||||
user.Modified = DateTime.UtcNow;
|
||||
Context.Users.Add(user);
|
||||
Console.WriteLine($"Saving user to db {user.Id}, {user.EmailAddress}, {user.PhoneNumber}, {user.Password}");
|
||||
return Context.SaveChangesAsync().ContinueWith(x=>x.Result > 0);
|
||||
}
|
||||
public UserModelDto? GetUserModelDtoById(Guid userId) => Session(x => x.GetUserModelDtoById(userId));
|
||||
public Task<UserModelDto?> GetUserModelDtoByIdAsync(Guid userId) => SessionAsync(x => x.GetUserModelDtoById(userId));
|
||||
public UserModelDto? GetUserModelDtoByEmail(string email) => Session(x => x.GetUserModelDtoByEmail(email));
|
||||
|
||||
public Task<bool> UpdateUserAsync(User user)
|
||||
{
|
||||
var existingUser = Context.Users.FirstOrDefault(u => u.EmailAddress == user.EmailAddress);
|
||||
if (existingUser != null)
|
||||
{
|
||||
//user.Modified = DateTime.UtcNow; //ezt nem kell megadni, a háttérben ezt magától megcsinálja a DbContextBase - J.
|
||||
existingUser = user;
|
||||
Context.Users.Update(existingUser);
|
||||
return Context.SaveChangesAsync().ContinueWith(x => x.Result > 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("User not found");
|
||||
}
|
||||
}
|
||||
public string? GetUserJsonById(Guid userId) => Session(ctx => ctx.GetUserById(userId)?.ToJson());
|
||||
public string GetUsersJson() => Session(ctx => ctx.Users.ToJson());
|
||||
|
||||
public Product? GetProductById(Guid contextId) => Session(x => x.GetProductById(contextId));
|
||||
|
||||
public UserProductMapping? GetUserProductMappingById(Guid userProductMappingId, bool autoInclude = true) => Session(x => x.GetUserProductMappingById(userProductMappingId, autoInclude));
|
||||
|
||||
public List<PermissionContextMapping> GetPermissionContextsView(Guid subjectId, Guid contextId)
|
||||
=> Session(x => x.GetPermissionContextsView(subjectId, contextId).ToList());
|
||||
|
||||
public List<PermissionContextMapping> GetPermissionContextsViewBySubjectId(Guid contextId)
|
||||
=> Session(x => x.GetPermissionContextsViewBySubjectId(contextId).ToList());
|
||||
|
||||
public List<PermissionContextMapping> GetPermissionContextsViewByContextId(Guid contextId)
|
||||
=> Session(x => x.GetPermissionContextsViewByContextId(contextId).ToList());
|
||||
|
||||
public Task<List<PermissionContextMapping>> GetPermissionContextsViewByContextIdAsync(Guid contextId)
|
||||
=> SessionAsync(x => x.GetPermissionContextsViewByContextId(contextId).ToList());
|
||||
|
||||
//public Task<List<User>> GetUsersAsync()
|
||||
//{
|
||||
// return Context.Users.ToListAsync();
|
||||
//}
|
||||
|
||||
//public Task<User?> GetUserByEmailAsync(string email)
|
||||
//{
|
||||
// Console.WriteLine($"Getting user from db {email}");
|
||||
// var emailLower = email.ToLower();
|
||||
// return Context.Users.SingleOrDefaultAsync(x=>x.EmailAddress.ToLower() == emailLower);
|
||||
//}
|
||||
|
||||
//public Task<bool> CreateUserAsync(User user)
|
||||
//{
|
||||
// user.Created = DateTime.UtcNow;
|
||||
// user.Modified = DateTime.UtcNow;
|
||||
// Context.Users.Add(user);
|
||||
// Console.WriteLine($"Saving user to db {user.Id}, {user.EmailAddress}, {user.PhoneNumber}, {user.Password}");
|
||||
// return Context.SaveChangesAsync().ContinueWith(x=>x.Result > 0);
|
||||
//}
|
||||
|
||||
//public Task<bool> UpdateUserAsync(User user)
|
||||
//{
|
||||
// var existingUser = Context.Users.FirstOrDefault(u => u.EmailAddress == user.EmailAddress);
|
||||
// if (existingUser != null)
|
||||
// {
|
||||
// //user.Modified = DateTime.UtcNow; //ezt nem kell megadni, a háttérben ezt magától megcsinálja a DbContextBase - J.
|
||||
// existingUser = user;
|
||||
// Context.Users.Update(existingUser);
|
||||
// return Context.SaveChangesAsync().ContinueWith(x => x.Result > 0);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// throw new Exception("User not found");
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ using TIAM.Entities.Products.DTOs;
|
|||
using AyCode.Database.DataLayers;
|
||||
using AyCode.Database.DbSets.Users;
|
||||
using TIAM.Database.DbSets.Products;
|
||||
using TIAM.Entities.TransferDestinations;
|
||||
using TIAM.Models.Dtos.Users;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
|
||||
namespace TIAM.Database.DataLayers.ServiceProviders
|
||||
|
|
@ -32,14 +34,20 @@ namespace TIAM.Database.DataLayers.ServiceProviders
|
|||
{
|
||||
}
|
||||
|
||||
public User? GetUserById(Guid userId, bool autoInclude = false) => Session(x => x.GetUserById(userId, autoInclude));
|
||||
public User? GetUserByEmail(string email, bool autoInclude = false) => Session(x => x.GetUserByEmail(email, autoInclude));
|
||||
//public TransferDestination? GetTransferDestinationById(Guid transferDestinationId, bool autoInclude = false) => Session(ctx=>ctx.TransferDestinations.FirstOrDefault(x=>x.Id == transferDestinationId));
|
||||
|
||||
public UserModelDto? GetUserModelDtoById(Guid userId) => Session(x => x.GetUserModelDtoById(userId));
|
||||
public Task<UserModelDto?> GetUserModelDtoByIdAsync(Guid userId) => SessionAsync(x => x.GetUserModelDtoById(userId));
|
||||
public UserModelDto? GetUserModelDtoByEmail(string email) => Session(x => x.GetUserModelDtoByEmail(email));
|
||||
//public User? GetUserById(Guid userId, bool autoInclude = false) => Session(x => x.GetUserById(userId, autoInclude));
|
||||
//public User? GetUserByEmail(string email, bool autoInclude = false) => Session(x => x.GetUserByEmail(email, autoInclude));
|
||||
|
||||
public UserProductMapping? GetUserProductMappingById(Guid userProductMappingId, bool autoInclude = true) => Session(x => x.GetUserProductMappingById(userProductMappingId, autoInclude));
|
||||
//public UserModelDto? GetUserModelDtoById(Guid userId) => Session(x => x.GetUserModelDtoById(userId));
|
||||
//public Task<UserModelDto?> GetUserModelDtoByIdAsync(Guid userId) => SessionAsync(x => x.GetUserModelDtoById(userId));
|
||||
//public UserModelDto? GetUserModelDtoByEmail(string email) => Session(x => x.GetUserModelDtoByEmail(email));
|
||||
|
||||
//public string? GetUserJsonById(Guid userId) => Session(ctx => ctx.GetUserById(userId)?.ToJson());
|
||||
//public string GetUsersJson() => Session(ctx => ctx.Users.ToJson());
|
||||
|
||||
|
||||
//public UserProductMapping? GetUserProductMappingById(Guid userProductMappingId, bool autoInclude = true) => Session(x => x.GetUserProductMappingById(userProductMappingId, autoInclude));
|
||||
|
||||
#region ServiceProviders
|
||||
|
||||
|
|
@ -204,17 +212,17 @@ namespace TIAM.Database.DataLayers.ServiceProviders
|
|||
|
||||
#region PermissionMappings
|
||||
|
||||
public List<PermissionContextMapping> GetPermissionContextsView(Guid subjectId, Guid contextId)
|
||||
=> Session(x => x.GetPermissionContextsView(subjectId, contextId).ToList());
|
||||
//public List<PermissionContextMapping> GetPermissionContextsView(Guid subjectId, Guid contextId)
|
||||
// => Session(x => x.GetPermissionContextsView(subjectId, contextId).ToList());
|
||||
|
||||
public List<PermissionContextMapping> GetPermissionContextsViewBySubjectId(Guid contextId)
|
||||
=> Session(x => x.GetPermissionContextsViewBySubjectId(contextId).ToList());
|
||||
//public List<PermissionContextMapping> GetPermissionContextsViewBySubjectId(Guid contextId)
|
||||
// => Session(x => x.GetPermissionContextsViewBySubjectId(contextId).ToList());
|
||||
|
||||
public List<PermissionContextMapping> GetPermissionContextsViewByContextId(Guid contextId)
|
||||
=> Session(x => x.GetPermissionContextsViewByContextId(contextId).ToList());
|
||||
//public List<PermissionContextMapping> GetPermissionContextsViewByContextId(Guid contextId)
|
||||
// => Session(x => x.GetPermissionContextsViewByContextId(contextId).ToList());
|
||||
|
||||
public Task<List<PermissionContextMapping>> GetPermissionContextsViewByContextIdAsync(Guid contextId)
|
||||
=> SessionAsync(x => x.GetPermissionContextsViewByContextId(contextId).ToList());
|
||||
//public Task<List<PermissionContextMapping>> GetPermissionContextsViewByContextIdAsync(Guid contextId)
|
||||
// => SessionAsync(x => x.GetPermissionContextsViewByContextId(contextId).ToList());
|
||||
|
||||
//3. (IPermissionService) get permissions of assigned users and groups
|
||||
public Task<List<AssignedPermissionModel>> GetPermissionsOfUserProductMappingsAndGroupsAsyncByContextId(Guid contextId)
|
||||
|
|
@ -379,8 +387,7 @@ namespace TIAM.Database.DataLayers.ServiceProviders
|
|||
|
||||
#region Products
|
||||
|
||||
public Product? GetProductById(Guid contextId)
|
||||
=> Session(x => x.GetProductById(contextId));
|
||||
//public Product? GetProductById(Guid contextId) => Session(x => x.GetProductById(contextId));
|
||||
|
||||
//* 19. (IServiceProviderDataService) Create product
|
||||
public bool CreateProductAsync(Product product)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using AyCode.Database.DataLayers.Users;
|
||||
using AyCode.Interfaces.Entities;
|
||||
using AyCode.Models.Enums;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Diagnostics;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Newtonsoft.Json;
|
||||
using TIAM.Database.DbContexts;
|
||||
using TIAM.Database.DbContexts.ServiceProviders;
|
||||
using TIAM.Database.DbSets.Permissions;
|
||||
|
|
@ -16,6 +19,28 @@ namespace TIAM.Database.DataLayers.ServiceProviders;
|
|||
|
||||
public static class ServiceProviderDalExtension
|
||||
{
|
||||
public static string ToJson<T>(this T source) where T : class, IEntity
|
||||
{
|
||||
JsonSerializerSettings options = new()
|
||||
{
|
||||
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
|
||||
NullValueHandling = NullValueHandling.Ignore
|
||||
};
|
||||
|
||||
return JsonConvert.SerializeObject(source, options);
|
||||
}
|
||||
|
||||
public static string ToJson<T>(this IQueryable<T> source) where T : class, IEntity
|
||||
{
|
||||
JsonSerializerSettings options = new()
|
||||
{
|
||||
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
|
||||
NullValueHandling = NullValueHandling.Ignore
|
||||
};
|
||||
|
||||
return JsonConvert.SerializeObject(source, options);
|
||||
}
|
||||
|
||||
public static IQueryable<UserProductMapping> GetUserProductMappingsByPermissionGroupId(this IServiceProviderDbContext ctx, Guid permissionGroupId)
|
||||
{
|
||||
return ctx.UserProductMappings
|
||||
|
|
|
|||
|
|
@ -28,11 +28,6 @@ namespace TIAM.Database.DataLayers.Users
|
|||
{
|
||||
}
|
||||
|
||||
public Task<List<User>> GetUsersAsync()
|
||||
{
|
||||
return Context.Users.ToListAsync();
|
||||
}
|
||||
|
||||
public UserModelDto? GetUserModelDtoById(Guid userId) => Session(x => x.GetUserModelDtoById(userId));
|
||||
public Task<UserModelDto?> GetUserModelDtoByIdAsync(Guid userId) => SessionAsync(x => x.GetUserModelDtoById(userId));
|
||||
public Task<UserModelDto?> GetUserModelDtoByEmailAsync(string email) => SessionAsync(x => x.GetUserModelDtoByEmail(email));
|
||||
|
|
|
|||
|
|
@ -5,16 +5,31 @@ using System.Text;
|
|||
using System.Threading.Tasks;
|
||||
using AyCode.Database.DbContexts;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.ModelBuilders.Products;
|
||||
using TIAM.Database.ModelBuilders.Users;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Permissions;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.TransferDestinations;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts.Admins
|
||||
{
|
||||
public class AdminDbContext : DbContextBase
|
||||
public class AdminDbContext : DbContextBase, IAdminDbContext
|
||||
{
|
||||
public DbSet<User> Users { get; set; }
|
||||
public DbSet<TransferDestination> TransferDestinations { get; set; }
|
||||
|
||||
public DbSet<TiamServiceProvider> ServiceProviders { get; set; }
|
||||
public DbSet<Product> Products { get; set; }
|
||||
public DbSet<UserProductMapping> UserProductMappings { get; set; }
|
||||
public DbSet<PermissionGroup> PermissionGroups { get; set; }
|
||||
public DbSet<PermissionGroupUserMapping> PermissionGroupUserMappings { get; set; }
|
||||
public DbSet<PermissionContextMapping> PermissionContextMappings { get; set; }
|
||||
public DbSet<PermissionsType> PermissionsTypes { get; set; }
|
||||
public DbSet<Address> Addresses { get; set; }
|
||||
|
||||
public AdminDbContext() //: this(string.Empty)
|
||||
{
|
||||
|
||||
|
|
@ -32,5 +47,16 @@ namespace TIAM.Database.DbContexts.Admins
|
|||
{
|
||||
base.OnConfiguring(optionsBuilder);
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
base.OnModelCreating(modelBuilder);
|
||||
|
||||
new UserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<User>());
|
||||
//new UserProductMappingEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<UserProductMapping>());
|
||||
|
||||
new ProductEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<Product>());
|
||||
modelBuilder.Entity<TransferDestination>().Navigation(e => e.Address).AutoInclude(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
using TIAM.Database.DbSets.Addresses;
|
||||
using TIAM.Database.DbSets.Permissions;
|
||||
using TIAM.Database.DbSets.Products;
|
||||
using TIAM.Database.DbSets.ServiceProvider;
|
||||
using TIAM.Database.DbSets.Transfers;
|
||||
using TIAM.Database.DbSets.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts.Admins;
|
||||
|
||||
public interface IAdminDbContext : IServiceProviderDbSet, IProductDbSet, IUserProductMappingDbSet, IUserDbSet, IPermissionsDbSetContext, IAddressDbSet, ITransferDestinationDbSet
|
||||
{
|
||||
}
|
||||
|
|
@ -1,11 +1,13 @@
|
|||
using AyCode.Database.DbSets.Users;
|
||||
using TIAM.Database.DbSets.Addresses;
|
||||
using TIAM.Database.DbSets.Permissions;
|
||||
using TIAM.Database.DbSets.Products;
|
||||
using TIAM.Database.DbSets.ServiceProvider;
|
||||
using TIAM.Database.DbSets.Transfers;
|
||||
using TIAM.Database.DbSets.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts.ServiceProviders;
|
||||
|
||||
public interface IServiceProviderDbContext : IServiceProviderDbSet, IProductDbSet, IUserProductMappingDbSet, IUserDbSet, IPermissionsDbSetContext
|
||||
public interface IServiceProviderDbContext : IServiceProviderDbSet, IProductDbSet, IUserProductMappingDbSet, IUserDbSet, IPermissionsDbSetContext, IAddressDbSet, ITransferDestinationDbSet
|
||||
{
|
||||
}
|
||||
|
|
@ -11,15 +11,20 @@ using TIAM.Database.DbContexts.Users;
|
|||
using TIAM.Database.DbSets.Users;
|
||||
using TIAM.Database.ModelBuilders.Products;
|
||||
using TIAM.Database.ModelBuilders.Users;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Permissions;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.TransferDestinations;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts.ServiceProviders
|
||||
{
|
||||
public class ServiceProviderDbContext : DbContextBase, IServiceProviderDbContext, IUserProductMappingDbSet
|
||||
public class ServiceProviderDbContext : DbContextBase, IServiceProviderDbContext
|
||||
{
|
||||
public DbSet<Address> Addresses { get; set; }
|
||||
public DbSet<TransferDestination> TransferDestinations { get; set; }
|
||||
|
||||
public DbSet<User> Users { get; set; }
|
||||
public DbSet<UserProductMapping> UserProductMappings { get; set; }
|
||||
|
||||
|
|
@ -63,6 +68,7 @@ namespace TIAM.Database.DbContexts.ServiceProviders
|
|||
//new UserProductMappingEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<UserProductMapping>());
|
||||
|
||||
new ProductEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<Product>());
|
||||
modelBuilder.Entity<TransferDestination>().Navigation(e => e.Address).AutoInclude(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,15 @@
|
|||
using AyCode.Database.DbContexts.Users;
|
||||
using AyCode.Entities.Users;
|
||||
using TIAM.Database.DbSets.Addresses;
|
||||
using TIAM.Database.DbSets.Transfers;
|
||||
using TIAM.Database.DbSets.Users;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Profiles;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts.Users;
|
||||
|
||||
public interface IUserDbContext : IAcUserDbContextBase<User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider>, IUserDbSet
|
||||
public interface IUserDbContext : IAcUserDbContextBase<User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider>, IUserDbSet, IAddressDbSet, ITransferDestinationDbSet
|
||||
{
|
||||
}
|
||||
|
|
@ -13,8 +13,10 @@ using Microsoft.EntityFrameworkCore;
|
|||
using Microsoft.Extensions.Options;
|
||||
using TIAM.Database.ModelBuilders.Products;
|
||||
using TIAM.Database.ModelBuilders.Users;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Permissions;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.TransferDestinations;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts.Users
|
||||
|
|
@ -24,6 +26,8 @@ namespace TIAM.Database.DbContexts.Users
|
|||
public DbSet<User> Users { get; set; }
|
||||
public DbSet<UserToken> UserTokens { get; set; }
|
||||
|
||||
public DbSet<Address> Addresses { get; set; }
|
||||
public DbSet<TransferDestination> TransferDestinations { get; }
|
||||
|
||||
public UserDbContext() //: this(string.Empty)
|
||||
{
|
||||
|
|
@ -55,6 +59,8 @@ namespace TIAM.Database.DbContexts.Users
|
|||
new UserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<User>());
|
||||
new ProductEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<Product>());
|
||||
|
||||
modelBuilder.Entity<TransferDestination>().Navigation(e => e.Address).AutoInclude(true);
|
||||
|
||||
//modelBuilder.Entity<Product>().BuildProductToServiceProviderRelation();
|
||||
//new UserProductMappingEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<UserProductMapping>());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
using AyCode.Database.DbSets.Addresses;
|
||||
using TIAM.Entities.Addresses;
|
||||
|
||||
namespace TIAM.Database.DbSets.Addresses;
|
||||
|
||||
public interface IAddressDbSet : IAcAddressDbSetBase<Address>
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -5,5 +5,5 @@ namespace TIAM.Database.DbSets.Products;
|
|||
|
||||
public interface IProductDbSet
|
||||
{
|
||||
public DbSet<Product> Products { get; }
|
||||
public DbSet<Product> Products { get; set; }
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.TransferDestinations;
|
||||
|
||||
namespace TIAM.Database.DbSets.Transfers;
|
||||
|
||||
public interface ITransferDestinationDbSet
|
||||
{
|
||||
public DbSet<TransferDestination> TransferDestinations { get; }
|
||||
}
|
||||
|
|
@ -10,12 +10,15 @@
|
|||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="DataLayers\DTOs\" />
|
||||
<Folder Include="DataLayers\Permissions\" />
|
||||
<Folder Include="DataLayers\Products\" />
|
||||
<Folder Include="DbSets\Addresses\" />
|
||||
<Folder Include="DbSets\Transfers\" />
|
||||
<Folder Include="DbSets\ServiceProvider\" />
|
||||
<Folder Include="Extensions\" />
|
||||
</ItemGroup>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
using AyCode.Entities.Addresses;
|
||||
|
||||
namespace TIAM.Entities.Addresses;
|
||||
|
||||
public class Address : AcAddress, IAddress
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
using AyCode.Interfaces.Addresses;
|
||||
using AyCode.Interfaces.Addresses.Dtos;
|
||||
using AyCode.Interfaces.Profiles;
|
||||
using TIAM.Entities.Profiles;
|
||||
|
||||
namespace TIAM.Entities.Addresses;
|
||||
|
||||
public interface IAddress : IAcAddress, IAddressDto
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
using AyCode.Interfaces.Addresses.Dtos;
|
||||
|
||||
namespace TIAM.Entities.Addresses;
|
||||
|
||||
public interface IAddressDto : IAcAddressDtoBase
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using AyCode.Interfaces.Entities;
|
||||
using AyCode.Interfaces.TimeStampInfo;
|
||||
using TIAM.Core;
|
||||
using TIAM.Core.Enums;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using AyCode.Interfaces.Entities;
|
||||
using AyCode.Interfaces.TimeStampInfo;
|
||||
using TIAM.Core;
|
||||
using TIAM.Core.Enums;
|
||||
|
||||
namespace TIAM.Entities.Products;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,22 +4,19 @@ using AyCode.Entities.Locations;
|
|||
using AyCode.Interfaces.TimeStampInfo;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.RegularExpressions;
|
||||
using TIAM.Core.Enums;
|
||||
using TIAM.Entities.Addresses;
|
||||
|
||||
namespace TIAM.Entities.TransferDestinations
|
||||
{
|
||||
public enum PriceType : byte
|
||||
{
|
||||
NotSet = 5,
|
||||
Fix = 10,
|
||||
Calculated = 15
|
||||
}
|
||||
|
||||
[Table("TransferDestination")]
|
||||
public class TransferDestination : IEntityGuid, ITimeStampInfo //LocationBase
|
||||
{
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public Guid AddressId { get; set; }
|
||||
public virtual Address Address { get; set; }
|
||||
|
||||
//[Required(ErrorMessage = "The Username value should be specified.")]
|
||||
public string Name { get; set; }
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using AyCode.Interfaces.Users;
|
||||
using AyCode.Interfaces.Profiles;
|
||||
using AyCode.Interfaces.Users;
|
||||
using AyCode.Interfaces.Users.Dtos;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.Profiles;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ namespace TIAM.Models.Dtos.Users;
|
|||
public class UserDto : IUserDto
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public Guid ProfileId { get; }
|
||||
public Guid ProfileId { get; set; }
|
||||
public Profile Profile { get; set; }
|
||||
public List<TiamServiceProvider> ServiceProviders { get; set; }
|
||||
public List<UserToServiceProvider> UserToServiceProviders { get; set; }
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ using Microsoft.EntityFrameworkCore;
|
|||
using Newtonsoft.Json.Linq;
|
||||
using System.Reflection.Metadata;
|
||||
using System.Text.Json;
|
||||
using TIAM.Core.Enums;
|
||||
using TIAM.Database.DataLayers;
|
||||
using TIAM.Database.DataLayers.Admins;
|
||||
using TIAM.Database.DataLayers.TransferDestinations;
|
||||
|
|
@ -111,7 +112,6 @@ namespace TIAMWebApp.Server.Controllers
|
|||
await _transferDestinationDal.CreateTransferDestinationAsync(transferDestination);
|
||||
return Ok(transferDestination);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue