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(this IAcUserDbSetBase ctx, Guid userId) where TUser : class, IAcUserBase => ctx.GetUsersById(userId).FirstOrDefault(); public static TUser? GetUserByEmail(this IAcUserDbSetBase ctx, string email) where TUser : class, IAcUserBase => ctx.GetUsersByEmail(email).FirstOrDefault(); public static IQueryable GetUsersById(this IAcUserDbSetBase ctx, Guid userId) where TUser : class, IAcUserBase => ctx.Users.Where(u => u.Id == userId); public static IQueryable GetUsersByEmail(this IAcUserDbSetBase ctx, string email) where TUser : class, IAcUserBase { Logger.Info($"GetUserByEmail: {email}"); var emailLower = email.ToLower(); return ctx.Users.Where(u => u.EmailAddress == emailLower); } }