implement FirstName, LastName, FullName to AcProfile, IAcProfileName, AcUserModelDtoMinBase, etc...

This commit is contained in:
jozsef.b@aycode.com 2024-04-09 15:31:45 +02:00
parent 66e14a0fb9
commit a11c4e7644
7 changed files with 43 additions and 3 deletions

View File

@ -32,7 +32,7 @@ namespace AyCode.Database.DataLayers.Users
public TUser? GetUserByEmail(string email) => Session(x => x.GetUserByEmail(email)); public TUser? GetUserByEmail(string email) => Session(x => x.GetUserByEmail(email));
public Task<TUser?> GetUserByEmailAsync(string email) => SessionAsync(x => x.GetUserByEmail(email)); public Task<TUser?> GetUserByEmailAsync(string email) => SessionAsync(x => x.GetUserByEmail(email));
public Task<bool> AddUser(TUser user, string profileName, TProfileAddress address) public Task<bool> AddUser(TUser user, string profileName, TProfileAddress address, string? firstName = null, string? lastName = null)
{ {
return TransactionAsync(ctx => return TransactionAsync(ctx =>
{ {
@ -40,6 +40,8 @@ namespace AyCode.Database.DataLayers.Users
profile.Id = Guid.NewGuid(); profile.Id = Guid.NewGuid();
profile.Name = profileName; profile.Name = profileName;
profile.FirstName = firstName;
profile.LastName = lastName;
profile.Address = address; profile.Address = address;
user.Profile= profile; user.Profile= profile;

View File

@ -2,6 +2,7 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Utils.Extensions;
namespace AyCode.Entities.Profiles namespace AyCode.Entities.Profiles
{ {
@ -26,11 +27,30 @@ namespace AyCode.Entities.Profiles
[Required] [Required]
public string Name { get; set; } public string Name { get; set; }
public string? FullName => GetFullName("ENG");
public string? FirstName { get; set; }
public string? LastName { get; set; }
//public string NickName { get; set; }
public string? Description { 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; }
public DateTime Modified { get; set; } public DateTime Modified { get; set; }
public string? GetFullName(string lang = "ENG") => GetFullName(FirstName, LastName, lang);
public static string? GetFullName(string? firstName, string? lastName, string? lang = "ENG")
{
if (firstName.IsNullOrWhiteSpace()) return lastName;
if(lastName.IsNullOrWhiteSpace()) return firstName;
if (lang == "ENG") return firstName + " " + lastName;
return lastName + " " + firstName;
}
} }
} }

View File

@ -0,0 +1,8 @@
namespace AyCode.Interfaces.Profiles.Dtos;
public interface IAcFullName
{
string? FullName { get; }
string? FirstName { get; set; }
string? LastName { get; set; }
}

View File

@ -4,8 +4,7 @@ using AyCode.Interfaces.MediaInfo;
namespace AyCode.Interfaces.Profiles.Dtos; namespace AyCode.Interfaces.Profiles.Dtos;
public interface IAcProfileDtoBase : IEntityGuid, IMediaInfo, IAcAddressForeignKey public interface IAcProfileDtoBase : IEntityGuid, IAcProfileName, IMediaInfo, IAcAddressForeignKey
{ {
string Name { get; set; }
string? Description { get; set; } string? Description { get; set; }
} }

View File

@ -0,0 +1,7 @@
namespace AyCode.Interfaces.Profiles.Dtos;
public interface IAcProfileName : IAcFullName
{
string Name { get; set; }
//string NickName { get; set; }
}

View File

@ -6,4 +6,5 @@ namespace AyCode.Interfaces.Profiles;
public interface IAcProfile<TAddress> : IAcProfileDtoBase, ITimeStampInfo, IAcAddressRelation<TAddress> where TAddress : class, IAcAddress public interface IAcProfile<TAddress> : IAcProfileDtoBase, ITimeStampInfo, IAcAddressRelation<TAddress> where TAddress : class, IAcAddress
{ {
public string? GetFullName(string lang = "ENG");
} }

View File

@ -27,5 +27,8 @@ public abstract class AcUserModelDtoMinBase<TUserDtoMin, TProfile, TProfileDto,
Profile = Activator.CreateInstance<TProfileDto>(); Profile = Activator.CreateInstance<TProfileDto>();
Profile.Id = user.Profile.Id; Profile.Id = user.Profile.Id;
Profile.Name = user.Profile.Name; Profile.Name = user.Profile.Name;
Profile.FirstName = user.Profile.FirstName;
Profile.LastName = user.Profile.LastName;
//Profile.NickName = user.Profile.NickName;
} }
} }