64 lines
1.8 KiB
C#
64 lines
1.8 KiB
C#
|
|
using BotSharp.Abstraction.Users.Models;
|
||
|
|
using BotSharp.Plugin.MongoStorage.Collections;
|
||
|
|
|
||
|
|
namespace BotSharp.Plugin.MongoStorage.Repository;
|
||
|
|
|
||
|
|
public partial class MongoRepository
|
||
|
|
{
|
||
|
|
public User? GetUserByEmail(string email)
|
||
|
|
{
|
||
|
|
var user = _dc.Users.AsQueryable().FirstOrDefault(x => x.Email == email);
|
||
|
|
return user != null ? new User
|
||
|
|
{
|
||
|
|
Id = user.Id,
|
||
|
|
UserName = user.UserName,
|
||
|
|
FirstName = user.FirstName,
|
||
|
|
LastName = user.LastName,
|
||
|
|
Email = user.Email,
|
||
|
|
Password = user.Password,
|
||
|
|
Salt = user.Salt,
|
||
|
|
ExternalId = user.ExternalId,
|
||
|
|
Role = user.Role
|
||
|
|
} : null;
|
||
|
|
}
|
||
|
|
|
||
|
|
public User? GetUserById(string id)
|
||
|
|
{
|
||
|
|
var user = _dc.Users.AsQueryable().FirstOrDefault(x => x.Id == id || x.ExternalId == id);
|
||
|
|
return user != null ? new User
|
||
|
|
{
|
||
|
|
Id = user.Id,
|
||
|
|
UserName = user.UserName,
|
||
|
|
FirstName = user.FirstName,
|
||
|
|
LastName = user.LastName,
|
||
|
|
Email = user.Email,
|
||
|
|
Password = user.Password,
|
||
|
|
Salt = user.Salt,
|
||
|
|
ExternalId = user.ExternalId,
|
||
|
|
Role = user.Role
|
||
|
|
} : null;
|
||
|
|
}
|
||
|
|
|
||
|
|
public void CreateUser(User user)
|
||
|
|
{
|
||
|
|
if (user == null) return;
|
||
|
|
|
||
|
|
var userCollection = new UserDocument
|
||
|
|
{
|
||
|
|
Id = Guid.NewGuid().ToString(),
|
||
|
|
UserName = user.UserName,
|
||
|
|
FirstName = user.FirstName,
|
||
|
|
LastName = user.LastName,
|
||
|
|
Salt = user.Salt,
|
||
|
|
Password = user.Password,
|
||
|
|
Email = user.Email,
|
||
|
|
ExternalId = user.ExternalId,
|
||
|
|
Role = user.Role,
|
||
|
|
CreatedTime = DateTime.UtcNow,
|
||
|
|
UpdatedTime = DateTime.UtcNow
|
||
|
|
};
|
||
|
|
|
||
|
|
_dc.Users.InsertOne(userCollection);
|
||
|
|
}
|
||
|
|
}
|