TourIAm/TIAM.Database/DataLayers/Admins/AdminDal.cs

88 lines
4.1 KiB
C#

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<AdminDbContext>
{
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<UserModelDto?> 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<PermissionContextMapping> GetPermissionContextsView(Guid subjectId, Guid contextId)
=> Session(x => x.GetPermissionContextsView(subjectId, contextId).ToList());
public List<PermissionContextMapping> GetPermissionContextsViewBySubjectId(Guid contextId)
=> Session(x => x.GetPermissionContextsViewBySubjectId(contextId).ToList());
public List<PermissionContextMapping> GetPermissionContextsViewByContextId(Guid contextId)
=> Session(x => x.GetPermissionContextsViewByContextId(contextId).ToList());
public Task<List<PermissionContextMapping>> GetPermissionContextsViewByContextIdAsync(Guid contextId)
=> SessionAsync(x => x.GetPermissionContextsViewByContextId(contextId).ToList());
//public Task<List<User>> GetUsersAsync()
//{
// return Context.Users.ToListAsync();
//}
//public Task<User?> 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<bool> 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<bool> 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");
// }
//}
}
}