refactoring, improvements, fixes, etc...
This commit is contained in:
parent
f6b9cf39a5
commit
53b717ecf4
|
|
@ -130,6 +130,9 @@ namespace TIAM.Database.Test
|
|||
Assert.IsTrue(user.UserProductMappings.Count != 0, "UserProductMappings count: 0");
|
||||
|
||||
Assert.IsNotNull(user.UserProductMappings[0].Product, "Product is null");
|
||||
|
||||
var userModelDto = (UserModelDto)Activator.CreateInstance(typeof(UserModelDto), user);
|
||||
Assert.IsNotNull(userModelDto);
|
||||
}
|
||||
|
||||
#region UserProductMapping
|
||||
|
|
@ -236,7 +239,7 @@ namespace TIAM.Database.Test
|
|||
NullValueHandling = NullValueHandling.Ignore
|
||||
};
|
||||
|
||||
var userModel = Dal.GetUserModelDtoById(userId, false);
|
||||
var userModel = Dal.GetUserModelDtoById<UserModelDto>(userId, false);
|
||||
|
||||
var serializedUserModel = JsonConvert.SerializeObject(userModel, options);
|
||||
userModel = JsonConvert.DeserializeObject<UserModelDto>(serializedUserModel);
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ namespace TIAM.Database.Test
|
|||
NullValueHandling = NullValueHandling.Ignore
|
||||
};
|
||||
|
||||
var userModel = await Dal.GetUserModelDtoByIdAsync(userId, false).ConfigureAwait(false);
|
||||
var userModel = await Dal.GetUserModelDtoByIdAsync<UserModelDto>(userId, false).ConfigureAwait(false);
|
||||
|
||||
var serializedUserModel = JsonConvert.SerializeObject(userModel, options);
|
||||
userModel = JsonConvert.DeserializeObject<UserModelDto>(serializedUserModel);
|
||||
|
|
|
|||
|
|
@ -94,8 +94,11 @@ namespace TIAM.Database.DataLayers.Admins
|
|||
public Task<UserModelDtoDetail?> GetUserModelDtoDetailByIdAsync(Guid userId, bool onlyConfirmed) => SessionAsync(ctx => ctx.GetUserModelDtoDetailById(userId, onlyConfirmed));
|
||||
public UserModelDtoDetail? GetUserModelDtoDetailByEmail(string email, bool onlyConfirmed) => Session(ctx => ctx.GetUserModelDtoDetailByEmail(email, onlyConfirmed));
|
||||
|
||||
public UserModelDto? GetUserModelDtoById(Guid userId, bool onlyConfirmed) => Session(ctx => ctx.GetUserModelDtoById(userId, onlyConfirmed));
|
||||
public Task<UserModelDto?> GetUserModelDtoByIdAsync(Guid userId, bool onlyConfirmed) => SessionAsync(ctx => ctx.GetUserModelDtoById(userId, onlyConfirmed));
|
||||
public TUserModelDto? GetUserModelDtoById<TUserModelDto>(Guid userId, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase
|
||||
=> Session(ctx => ctx.GetUserModelDtoById<TUserModelDto>(userId, onlyConfirmed));
|
||||
public Task<TUserModelDto?> GetUserModelDtoByIdAsync<TUserModelDto>(Guid userId, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase
|
||||
=> SessionAsync(ctx => ctx.GetUserModelDtoById<TUserModelDto>(userId, onlyConfirmed));
|
||||
|
||||
public UserModelDto? GetUserModelDtoByEmail(string email, bool onlyConfirmed) => Session(ctx => ctx.GetUserModelDtoByEmail(email, onlyConfirmed));
|
||||
|
||||
public string? GetUserJsonById(Guid userId, bool onlyConfirmed) => Session(ctx => ctx.GetUserById(userId, onlyConfirmed)?.ToJson());
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ using TIAM.Database.DbContexts;
|
|||
|
||||
namespace TIAM.Database.DataLayers;
|
||||
|
||||
public class DalBase<TDbContext> : AcDalBase<TDbContext> where TDbContext : DbContextBase
|
||||
public class DalBase<TDbContext> : AcDalBase<TDbContext>, IDalBase<TDbContext> where TDbContext : DbContextBase
|
||||
{
|
||||
//public DalBase() : base(new TransferDestinationDbContext("DeveloperDbConnection"))
|
||||
//{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
using AyCode.Database.DataLayers;
|
||||
using TIAM.Database.DbContexts;
|
||||
|
||||
namespace TIAM.Database.DataLayers;
|
||||
|
||||
public interface IDalBase : IAcDalBase
|
||||
{ }
|
||||
|
||||
public interface IDalBase<TDbContext> : IAcDalBase<TDbContext>, IAcDalBase where TDbContext : DbContextBase
|
||||
{ }
|
||||
|
|
@ -18,14 +18,14 @@ using TIAM.Models.Dtos.Users;
|
|||
|
||||
namespace TIAM.Database.DataLayers.Users
|
||||
{
|
||||
public class UserDal : AcUserDalBase<UserDbContext, User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider, Address>
|
||||
public class UserDal : AcUserDalBase<UserDbContext, User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider, Address>, IDalBase<UserDbContext>
|
||||
{
|
||||
|
||||
public UserDal() : base()
|
||||
{
|
||||
}
|
||||
|
||||
public UserDal(UserDbContext _object)
|
||||
public UserDal(UserDbContext context)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -33,33 +33,15 @@ namespace TIAM.Database.DataLayers.Users
|
|||
public Task<UserModelDtoDetail?> GetUserModelDtoDetailByIdAsync(Guid userId, bool onlyConfirmed) => SessionAsync(ctx => ctx.GetUserModelDtoDetailById(userId, onlyConfirmed));
|
||||
public UserModelDtoDetail? GetUserModelDtoDetailByEmail(string email, bool onlyConfirmed) => Session(ctx => ctx.GetUserModelDtoDetailByEmail(email, onlyConfirmed));
|
||||
|
||||
public UserModelDto? GetUserModelDtoById(Guid userId, bool onlyConfirmed) => Session(x => x.GetUserModelDtoById(userId, onlyConfirmed));
|
||||
public Task<UserModelDto?> GetUserModelDtoByIdAsync(Guid userId, bool onlyConfirmed) => SessionAsync(x => x.GetUserModelDtoById(userId, onlyConfirmed));
|
||||
public TUserModelDto? GetUserModelDtoById<TUserModelDto>(Guid userId, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase
|
||||
=> Session(ctx => ctx.GetUserModelDtoById<TUserModelDto>(userId, onlyConfirmed));
|
||||
public Task<TUserModelDto?> GetUserModelDtoByIdAsync<TUserModelDto>(Guid userId, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase
|
||||
=> SessionAsync(ctx => ctx.GetUserModelDtoById<TUserModelDto>(userId, onlyConfirmed));
|
||||
|
||||
public Task<UserModelDto?> GetUserModelDtoByEmailAsync(string email, bool onlyConfirmed) => SessionAsync(x => x.GetUserModelDtoByEmail(email, onlyConfirmed));
|
||||
public Task<List<UserModelDto>> GetAllUsersModelDtoAsync() => SessionAsync(x => x.GetAllUsersModelDto().ToList());
|
||||
public Task<List<UserModelDtoDetail>> GetAllUsersModelDtoDetailAsync() => SessionAsync(x => x.GetAllUsersModelDetailDto().ToList());
|
||||
|
||||
public Task<User?> GetUserByPhoneNumberAsync(string phoneNumber)
|
||||
{
|
||||
Console.WriteLine($@"Getting user from db {phoneNumber}");
|
||||
var phoneNumberLower = phoneNumber.ToLower();
|
||||
return Context.Users.SingleOrDefaultAsync(x=>x.PhoneNumber.Equals(phoneNumberLower, StringComparison.CurrentCultureIgnoreCase));
|
||||
}
|
||||
|
||||
public Task<User?> GetUserByEmailOrPhoneNumberAsync(string emailOrPhoneNumber)
|
||||
{
|
||||
Console.WriteLine($@"Getting user from db {emailOrPhoneNumber}");
|
||||
var emailOrPhoneNumberLower = emailOrPhoneNumber.ToLower();
|
||||
return Context.Users.SingleOrDefaultAsync(x=>x.EmailAddress.Equals(emailOrPhoneNumberLower, StringComparison.CurrentCultureIgnoreCase) || x.PhoneNumber.Equals(emailOrPhoneNumberLower, StringComparison.CurrentCultureIgnoreCase));
|
||||
}
|
||||
|
||||
////get user by Id
|
||||
//public Task<User?> GetUserByIdAsync(Guid id)
|
||||
//{
|
||||
// Console.WriteLine($"Getting user from db {id}");
|
||||
// return Context.Users.SingleOrDefaultAsync(x=>x.Id == id);
|
||||
//}
|
||||
|
||||
public async Task<bool> CreateUserAsync(User user)
|
||||
{
|
||||
Context.Users.Add(user);
|
||||
|
|
|
|||
|
|
@ -1,14 +1,4 @@
|
|||
using AyCode.Interfaces.Entities;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TIAM.Core.Interfaces;
|
||||
using TIAM.Database.DbContexts.Admins;
|
||||
using TIAM.Database.DbContexts.ServiceProviders;
|
||||
using TIAM.Database.DbSets.Permissions;
|
||||
using TIAM.Database.DbSets.Permissions;
|
||||
using TIAM.Database.DbSets.Products;
|
||||
using TIAM.Database.DbSets.Users;
|
||||
using TIAM.Entities.Permissions;
|
||||
|
|
@ -16,9 +6,9 @@ using TIAM.Entities.Products;
|
|||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DataLayers.Admins
|
||||
namespace TIAM.Database.DbContexts.Admins
|
||||
{
|
||||
public static class AdminDalDbContextExtension
|
||||
public static class AdminDbContextExtension
|
||||
{
|
||||
public static IQueryable<UserProductMapping> GetUserProductMappingsByPermissionGroupId(this IAdminDbContext ctx, Guid permissionGroupId)
|
||||
{
|
||||
|
|
@ -21,8 +21,12 @@ public static class UserDbSetExtensions
|
|||
public static User? GetUserByEmail(this IUserDbSet ctx, string email, bool autoInclude)
|
||||
=> ctx.UsersWithProductRelations(autoInclude).FirstOrDefault(x => x.EmailAddress == email);
|
||||
|
||||
public static UserModelDto? GetUserModelDtoById(this IUserDbSet ctx, Guid userId, bool onlyConfirmed)
|
||||
=> ctx.GetUsersById(userId, onlyConfirmed).Select(user => new UserModelDto(user)).FirstOrDefault();
|
||||
public static TUserModelDto? GetUserModelDtoById<TUserModelDto>(this IUserDbSet ctx, Guid userId, bool onlyConfirmed) where TUserModelDto : class, IUserModelDtoMinBase
|
||||
{
|
||||
var user = ctx.GetUsersById(userId, onlyConfirmed).FirstOrDefault();
|
||||
return Activator.CreateInstance(typeof(TUserModelDto), user) as TUserModelDto;
|
||||
}
|
||||
//=> ctx.GetUsersById(userId, onlyConfirmed).Select(user => new UserModelDto(user)).FirstOrDefault();
|
||||
|
||||
public static UserModelDto? GetUserModelDtoByEmail(this IUserDbSet ctx, string email, bool onlyConfirmed)
|
||||
=> ctx.GetUsersByEmail(email, onlyConfirmed).Select(user => new UserModelDto(user)).FirstOrDefault();
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using AyCode.Entities.Addresses;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using TIAM.Entities.Profiles;
|
||||
|
||||
namespace TIAM.Entities.Addresses;
|
||||
|
||||
[Table(nameof(Address))]
|
||||
public class Address : AcAddress, IAddress
|
||||
{
|
||||
}
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
using AyCode.Entities.Profiles;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using TIAM.Entities.Addresses;
|
||||
|
||||
namespace TIAM.Entities.Profiles;
|
||||
|
||||
[Table(nameof(Profile))]
|
||||
public class Profile : AcProfile<Address>, IProfile<Address>
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using AyCode.Interfaces.ServiceProviders;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Entities.ServiceProviders;
|
||||
|
|
@ -6,4 +7,6 @@ namespace TIAM.Entities.ServiceProviders;
|
|||
public interface ITiamServiceProvider<TUser, TIUserToServiceProvider> : IAcServiceProvider<TUser, TIUserToServiceProvider>, ITiamServiceProviderBase
|
||||
where TUser : class, IUserBase
|
||||
where TIUserToServiceProvider : class, IUserToServiceProviderBase
|
||||
{}
|
||||
{
|
||||
public List<Product> Products { get; }
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
using AyCode.Interfaces;
|
||||
using AyCode.Interfaces.Users;
|
||||
|
||||
namespace TIAM.Entities.Users;
|
||||
|
||||
public interface IUserModelDtoMinBase : IAcUserModelDtoMinBase
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
|
@ -12,6 +13,7 @@ using TIAM.Entities.ServiceProviders;
|
|||
|
||||
namespace TIAM.Entities.Users
|
||||
{
|
||||
[Table("Users")]
|
||||
public class User : AcUser<Profile, TiamServiceProvider, UserToServiceProvider, Address>, IUser
|
||||
{
|
||||
public virtual List<Product> Products { get; } = new();
|
||||
|
|
|
|||
|
|
@ -7,20 +7,20 @@ using TIAM.Entities.ServiceProviders;
|
|||
|
||||
namespace TIAM.Entities.Users;
|
||||
|
||||
[Table("UserServiceProviderMapping")]
|
||||
public class UserServiceProviderMapping : IEntityGuid, ITimeStampInfo
|
||||
{
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public Guid Id { get; set; }
|
||||
//[Table("UserServiceProviderMapping")]
|
||||
//public class UserServiceProviderMapping : IEntityGuid, ITimeStampInfo
|
||||
//{
|
||||
// [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
// public Guid Id { get; set; }
|
||||
|
||||
public Guid UserId { get; set; }
|
||||
public Guid ServiceProviderId { get; set; }
|
||||
// public Guid UserId { get; set; }
|
||||
// public Guid ServiceProviderId { get; set; }
|
||||
|
||||
public virtual User User { get; set; }
|
||||
public virtual TiamServiceProvider ServiceProvider { get; set; }
|
||||
// public virtual User User { get; set; }
|
||||
// public virtual TiamServiceProvider ServiceProvider { get; set; }
|
||||
|
||||
public DateTime Created { get; set; }
|
||||
public DateTime Modified { get; set; }
|
||||
// public DateTime Created { get; set; }
|
||||
// public DateTime Modified { get; set; }
|
||||
|
||||
public UserServiceProviderMapping() { }
|
||||
}
|
||||
// public UserServiceProviderMapping() { }
|
||||
//}
|
||||
|
|
@ -10,7 +10,7 @@ using TIAM.Models.Dtos.Profiles;
|
|||
|
||||
namespace TIAM.Models.Dtos.Users;
|
||||
|
||||
public class UserModelDto : AcUserModelDtoBase<UserDto, Profile, ProfileDto, TiamServiceProvider, UserToServiceProvider, Address>, IProductsRelation
|
||||
public class UserModelDto : AcUserModelDtoBase<UserDto, Profile, ProfileDto, TiamServiceProvider, UserToServiceProvider, Address>, IProductsRelation, IUserModelDtoMinBase
|
||||
{
|
||||
public List<UserProductMapping> UserProductMappings { get; set; }
|
||||
public List<Product> Products { get; set; }
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ using TIAM.Models.Dtos.Profiles;
|
|||
|
||||
namespace TIAM.Models.Dtos.Users
|
||||
{
|
||||
public class UserModelDtoDetail : AcUserModelDtoDetailBase<UserDtoDetail, Profile, ProfileDto, TiamServiceProvider, UserToServiceProvider, Address>, IProductsRelation
|
||||
public class UserModelDtoDetail : AcUserModelDtoDetailBase<UserDtoDetail, Profile, ProfileDto, TiamServiceProvider, UserToServiceProvider, Address>, IProductsRelation, IUserModelDtoMinBase
|
||||
{
|
||||
public List<UserProductMapping> UserProductMappings { get; set; }
|
||||
public List<Product> Products { get; set; }
|
||||
|
|
|
|||
|
|
@ -365,7 +365,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
public Task<UserModelDto?> GetUserById([FromBody] Guid id)
|
||||
{
|
||||
Logger.Info($"GetUserById called with id: {id}");
|
||||
return _userDal.GetUserModelDtoByIdAsync(id, true);
|
||||
return _userDal.GetUserModelDtoByIdAsync<UserModelDto>(id, true);
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
|
|
|
|||
Loading…
Reference in New Issue