AyCode.Core/AyCode.Database/DbSets/Users/AcUserDbSetExtensions.cs

26 lines
1.0 KiB
C#

using AyCode.Core.Logger;
using AyCode.Entities.Users;
using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.Users;
namespace AyCode.Database.DbSets.Users;
public static class AcUserDbSetExtensions
{
public static TUser? GetUserById<TUser>(this IAcUserDbSetBase<TUser> ctx, Guid userId) where TUser : class, IAcUserBase
=> ctx.GetUsersById(userId).FirstOrDefault();
public static TUser? GetUserByEmail<TUser>(this IAcUserDbSetBase<TUser> ctx, string email) where TUser : class, IAcUserBase
=> ctx.GetUsersByEmail(email).FirstOrDefault();
public static IQueryable<TUser> GetUsersById<TUser>(this IAcUserDbSetBase<TUser> ctx, Guid userId) where TUser : class, IAcUserBase
=> ctx.Users.Where(u => u.Id == userId);
public static IQueryable<TUser> GetUsersByEmail<TUser>(this IAcUserDbSetBase<TUser> ctx, string email) where TUser : class, IAcUserBase
{
Logger.Info($"GetUserByEmail: {email}");
var emailLower = email.ToLower();
return ctx.Users.Where(u => u.EmailAddress == emailLower);
}
}