52 lines
1.9 KiB
C#
52 lines
1.9 KiB
C#
using AyCode.Database.DataLayers.Users;
|
|
using AyCode.Database.DbSets.Users;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using TIAM.Database.DbContexts.Users;
|
|
using TIAM.Entities.Addresses;
|
|
using TIAM.Entities.Emails;
|
|
using TIAM.Entities.Profiles;
|
|
using TIAM.Entities.ServiceProviders;
|
|
using TIAM.Entities.Users;
|
|
using TIAM.Models.Dtos.Users;
|
|
|
|
namespace TIAM.Database.DataLayers.Users
|
|
{
|
|
public class UserDal : AcUserDalBase<UserDbContext, User, Profile, UserToken, Company, UserToCompany, Address, EmailMessage>, IDalBase<UserDbContext>
|
|
{
|
|
|
|
public UserDal() : base()
|
|
{
|
|
}
|
|
|
|
public UserDal(UserDbContext context)
|
|
{
|
|
}
|
|
|
|
public Task<List<UserModelDtoEmail>> GetUserModelDtoEmailsAsync() => SessionAsync(ctx => ctx.Users.Select(x => new UserModelDtoEmail(x)).ToList());
|
|
|
|
public override Task<User?> UpdateUserAsync(User user) => base.UpdateSafeAsync(user);
|
|
|
|
public async Task<UserModelDtoDetail?> UpdateUserModelDtoDetailAsync(UserModelDtoDetail userModelDtoDetail)
|
|
{
|
|
var user = GetUserById(userModelDtoDetail.UserDto.Id, false);
|
|
if (user == null) return null;
|
|
|
|
userModelDtoDetail.CopyMainValuesToUser(user);
|
|
|
|
return await UpdateUserAsync(user) == null ? null : await GetUserModelDtoByIdAsync<UserModelDtoDetail>(userModelDtoDetail.Id, false);
|
|
}
|
|
|
|
public async Task<bool> CreateUserAsync(User user)
|
|
{
|
|
Context.Users.Add(user);
|
|
Profile profile = new Profile();
|
|
profile.Id = Guid.NewGuid();
|
|
var parts = user.EmailAddress.Split('@');
|
|
profile.Name = parts[0];
|
|
Context.Profiles.Add(profile);
|
|
Console.WriteLine($@"Saving user to db {user.Id}, {user.EmailAddress}, {user.PhoneNumber}, {user.Password}");
|
|
return await Context.SaveChangesAsync() > 0;
|
|
}
|
|
}
|
|
}
|