improvements, fixes, etc...

This commit is contained in:
jozsef.b@aycode.com 2024-01-18 19:53:33 +01:00
parent 226b50129c
commit e7456a42bc
9 changed files with 33 additions and 11 deletions

View File

@ -23,7 +23,10 @@ namespace AyCode.Entities.Profiles
public Guid Id { get; set; } public Guid Id { get; set; }
public Guid? UserMediaId { get; set; } public Guid? UserMediaId { get; set; }
public string? Name { get; set; } [Required]
public string Name { get; set; }
public string? Description { get; set; }
public string? ThumbnailUrl { get ; set; } public string? ThumbnailUrl { get ; set; }
public DateTime Created { get; set; } public DateTime Created { get; set; }

View File

@ -14,10 +14,15 @@ namespace AyCode.Entities.ServiceProviders
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)] [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public Guid Id { get; set; } public Guid Id { get; set; }
[Required]
public Guid OwnerId { get; set; } public Guid OwnerId { get; set; }
[Required]
public string Name { get; set; } public string Name { get; set; }
public double? CommissionPercent { get; set; }
[Required]
public Guid AffiliateId { get; set; } public Guid AffiliateId { get; set; }
public Guid? ReferralId { get; set; } public Guid? ReferralId { get; set; }
@ -40,13 +45,14 @@ namespace AyCode.Entities.ServiceProviders
{ {
} }
protected AcServiceProvider(Guid id, string name, Guid ownerId, Guid affiliateId) : this() protected AcServiceProvider(Guid id, string name, Guid ownerId, Guid affiliateId, double? commissionPercent = null) : this()
{ {
Id = id; Id = id;
Name = name; Name = name;
OwnerId = ownerId; OwnerId = ownerId;
AffiliateId = affiliateId; AffiliateId = affiliateId;
CommissionPercent = commissionPercent;
} }
} }
} }

View File

@ -16,22 +16,28 @@ using AyCode.Interfaces.ServiceProviders;
namespace AyCode.Entities.Users namespace AyCode.Entities.Users
{ {
[Table("Users")] [Table("Users")]
public abstract class AcUser<TProfile, TServiceProvider, TUserToServiceProvider> : IAcUser<TProfile, TServiceProvider, TUserToServiceProvider> public abstract class AcUser<TProfile, TServiceProvider, TUserToServiceProvider>() : IAcUser<TProfile, TServiceProvider, TUserToServiceProvider>
where TProfile : class, IAcProfile where TProfile : class, IAcProfile
where TServiceProvider : class, IAcServiceProviderBase where TServiceProvider : class, IAcServiceProviderBase
where TUserToServiceProvider : class, IAcUserToServiceProviderBase where TUserToServiceProvider : class, IAcUserToServiceProviderBase
{ {
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)] [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public Guid Id { get; set; } public Guid Id { get; set; }
[Column("Email")]
[Required, Column("Email")]
public string EmailAddress { get; set; } public string EmailAddress { get; set; }
//public string NormalizedEmail { get; set; } //public string NormalizedEmail { get; set; }
public string PhoneNumber { get; set; } public string PhoneNumber { get; set; }
public string Password { get; set; } public string Password { get; set; }
public string? RefreshToken { get; set; } public string? RefreshToken { get; set; }
public bool EmailConfirmed { get; set; } public bool EmailConfirmed { get; set; }
[Required]
public Guid AffiliateId { get; set; } = Guid.NewGuid();
public Guid? RefferalId { get; set; }
[Required]
public Guid ProfileId { get; set; } public Guid ProfileId { get; set; }
[ForeignKey(nameof(ProfileId))] [ForeignKey(nameof(ProfileId))]
public virtual TProfile Profile { get; set; } public virtual TProfile Profile { get; set; }
@ -44,8 +50,6 @@ namespace AyCode.Entities.Users
public DateTime Modified { get; set; } public DateTime Modified { get; set; }
protected AcUser() { }
protected AcUser(string email, string password) : this(Guid.NewGuid(), email, password) { } protected AcUser(string email, string password) : this(Guid.NewGuid(), email, password) { }
protected AcUser(Guid id, string email, string password) : this() protected AcUser(Guid id, string email, string password) : this()

View File

@ -5,5 +5,6 @@ namespace AyCode.Interfaces.Profiles.Dtos;
public interface IAcProfileDtoBase : IEntityGuid, IMediaInfo public interface IAcProfileDtoBase : IEntityGuid, IMediaInfo
{ {
string? Name { get; set; } string Name { get; set; }
string? Description { get; set; }
} }

View File

@ -3,6 +3,7 @@ using AyCode.Interfaces.Entities;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.TimeStampInfo; using AyCode.Interfaces.TimeStampInfo;
using System; using System;
using System.Dynamic;
namespace AyCode.Interfaces.ServiceProviders; namespace AyCode.Interfaces.ServiceProviders;
@ -10,6 +11,8 @@ public interface IAcServiceProviderBase : IEntityGuid, ITimeStampInfo, IOwnerId
{ {
string Name { get; set; } string Name { get; set; }
double? CommissionPercent { get; set; }
Guid AffiliateId { get; set; } Guid AffiliateId { get; set; }
Guid? ReferralId { get; set; } Guid? ReferralId { get; set; }
} }

View File

@ -6,5 +6,5 @@ namespace AyCode.Interfaces.Users.Dtos;
public interface IAcUserDtoMinBase<TProfile> : IEntityGuid, IAcProfileRelation<TProfile> where TProfile : class, IAcProfile public interface IAcUserDtoMinBase<TProfile> : IEntityGuid, IAcProfileRelation<TProfile> where TProfile : class, IAcProfile
{ {
public Guid AffiliateId { get; set; }
} }

View File

@ -9,4 +9,6 @@ public interface IAcUserBase : IEntityGuid, IAcProfileForeignKey, IEmailAddress,
{ {
public string PhoneNumber { get; set; } public string PhoneNumber { get; set; }
public string? RefreshToken { get; set; } public string? RefreshToken { get; set; }
public Guid? RefferalId { get; set; }
} }

View File

@ -22,10 +22,12 @@ public abstract class AcUserModelDtoBase<TUserDto, TProfile, TProfileDto, TServi
{ {
if (user.ServiceProviders.Count == 0) return; if (user.ServiceProviders.Count == 0) return;
UserDto.AffiliateId = user.AffiliateId;
//így proxy error lesz... - J. //így proxy error lesz... - J.
//ServiceProviders = new List<TServiceProvider>(user.ServiceProviders); //ServiceProviders = new List<TServiceProvider>(user.ServiceProviders);
//UserToServiceProviders = new List<TUserToServiceProvider>(user.UserToServiceProviders); //UserToServiceProviders = new List<TUserToServiceProvider>(user.UserToServiceProviders);
ServiceProviders = new List<TServiceProvider>(user.ServiceProviders.Count); ServiceProviders = new List<TServiceProvider>(user.ServiceProviders.Count);
UserToServiceProviders = new List<TUserToServiceProvider>(user.UserToServiceProviders.Count); UserToServiceProviders = new List<TUserToServiceProvider>(user.UserToServiceProviders.Count);

View File

@ -20,6 +20,7 @@ public abstract class AcUserModelDtoMinBase<TUserDtoMin, TProfile, TProfileDto>
UserDto = Activator.CreateInstance<TUserDtoMin>(); UserDto = Activator.CreateInstance<TUserDtoMin>();
UserDto.Id = user.Id; UserDto.Id = user.Id;
UserDto.AffiliateId = user.AffiliateId;
Profile = Activator.CreateInstance<TProfileDto>(); Profile = Activator.CreateInstance<TProfileDto>();
Profile.Id = user.Profile.Id; Profile.Id = user.Profile.Id;