using AyCode.Database.DbSets.Users; using Microsoft.EntityFrameworkCore; using TIAM.Database.DataLayers.ServiceProviders; using TIAM.Database.DbContexts.Admins; using TIAM.Database.DbSets.Permissions; using TIAM.Database.DbSets.Products; using TIAM.Database.DbSets.Users; using TIAM.Entities.Permissions; using TIAM.Entities.Products; using TIAM.Entities.TransferDestinations; using TIAM.Entities.Users; using TIAM.Models.Dtos.Users; namespace TIAM.Database.DataLayers.Admins { public class AdminDal : DalBase { public AdminDal() : base() { } public TransferDestination? GetTransferDestinationById(Guid transferDestinationId, bool autoInclude = false) => Session(ctx=>ctx.TransferDestinations.FirstOrDefault(x=>x.Id == transferDestinationId)); public User? GetUserById(Guid userId, bool autoInclude = false) => Session(x => x.GetUserById(userId, autoInclude)); public User? GetUserByEmail(string email, bool autoInclude = false) => Session(x => x.GetUserByEmail(email, autoInclude)); public UserModelDto? GetUserModelDtoById(Guid userId) => Session(x => x.GetUserModelDtoById(userId)); public Task GetUserModelDtoByIdAsync(Guid userId) => SessionAsync(x => x.GetUserModelDtoById(userId)); public UserModelDto? GetUserModelDtoByEmail(string email) => Session(x => x.GetUserModelDtoByEmail(email)); public string? GetUserJsonById(Guid userId) => Session(ctx => ctx.GetUserById(userId)?.ToJson()); public string GetUsersJson() => Session(ctx => ctx.Users.ToJson()); public Product? GetProductById(Guid contextId) => Session(x => x.GetProductById(contextId)); public UserProductMapping? GetUserProductMappingById(Guid userProductMappingId, bool autoInclude = true) => Session(x => x.GetUserProductMappingById(userProductMappingId, autoInclude)); public List GetPermissionContextsView(Guid subjectId, Guid contextId) => Session(x => x.GetPermissionContextsView(subjectId, contextId).ToList()); public List GetPermissionContextsViewBySubjectId(Guid contextId) => Session(x => x.GetPermissionContextsViewBySubjectId(contextId).ToList()); public List GetPermissionContextsViewByContextId(Guid contextId) => Session(x => x.GetPermissionContextsViewByContextId(contextId).ToList()); public Task> GetPermissionContextsViewByContextIdAsync(Guid contextId) => SessionAsync(x => x.GetPermissionContextsViewByContextId(contextId).ToList()); //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.Users.SingleOrDefaultAsync(x=>x.EmailAddress.ToLower() == emailLower); //} //public Task CreateUserAsync(User user) //{ // user.Created = DateTime.UtcNow; // user.Modified = DateTime.UtcNow; // Context.Users.Add(user); // Console.WriteLine($"Saving user to db {user.Id}, {user.EmailAddress}, {user.PhoneNumber}, {user.Password}"); // return Context.SaveChangesAsync().ContinueWith(x=>x.Result > 0); //} //public Task UpdateUserAsync(User user) //{ // var existingUser = Context.Users.FirstOrDefault(u => u.EmailAddress == user.EmailAddress); // 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 = user; // Context.Users.Update(existingUser); // return Context.SaveChangesAsync().ContinueWith(x => x.Result > 0); // } // else // { // throw new Exception("User not found"); // } //} } }