using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AyCode.Database.DataLayers; using AyCode.Database.DataLayers.Users; using AyCode.Entities.Users; using Microsoft.EntityFrameworkCore; using TIAM.Database.DbContexts.Users; using TIAM.Entities.Users; namespace TIAM.Database.DataLayers.Users { public class UserDal : AcUserDalBase { public UserDal() : base() { } public UserDal(UserDbContext _object) { } public Task> GetUsersAsync() { return Context.Users.ToListAsync(); } //public Task GetUserByEmailAsync(string email) //{ // Console.WriteLine($"Getting user from db {email}"); // //var emailLower = email.ToLower(); // return Context.GetUserByEmail(email); // //return Context.Users.SingleOrDefaultAsync(x=>x.Email.ToLower() == emailLower); //} public Task 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 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 GetUserByIdAsync(Guid id) //{ // Console.WriteLine($"Getting user from db {id}"); // return Context.Users.SingleOrDefaultAsync(x=>x.Id == id); //} public async Task CreateUserAsync(User user) { Context.Users.Add(user); Console.WriteLine($"Saving user to db {user.Id}, {user.EmailAddress}, {user.PhoneNumber}, {user.Password}"); return await Context.SaveChangesAsync() > 0; } public async Task UpdateJwtRefreshTokenAsync(string email, string refreshToken) { Console.WriteLine("UserDal Update refresh token"); var existingUser = Context.Users.FirstOrDefault(u => u.EmailAddress == email); if (existingUser != null) { //user.Modified = DateTime.UtcNow; //ezt nem kell megadni, a háttérben ezt magától megcsinálja a DbContextBase - J. existingUser.RefreshToken = refreshToken; Context.Users.Update(existingUser); return await Context.SaveChangesAsync() > 0; } else { throw new Exception("User not found"); } } public async Task UpdateUserAsync(User user) { var existingUser = await Context.Users.CountAsync(u => u.EmailAddress == user.EmailAddress); if (existingUser == 1) { //user.Modified = DateTime.UtcNow; //ezt nem kell megadni, a háttérben ezt magától megcsinálja a DbContextBase - J. Context.Users.Update(user); return await Context.SaveChangesAsync() > 0; } else { throw new Exception("User not found"); } } } }