BotSharp/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.User.cs

76 lines
2.5 KiB
C#
Raw Normal View History

2024-01-13 02:13:38 +00:00
using BotSharp.Abstraction.Users.Models;
namespace BotSharp.Plugin.MongoStorage.Repository;
public partial class MongoRepository
{
public User? GetUserByEmail(string email)
{
2024-01-31 19:57:54 +00:00
var user = _dc.Users.AsQueryable().FirstOrDefault(x => x.Email == email.ToLower());
return user != null ? user.ToUser() : null;
2024-01-13 02:13:38 +00:00
}
public User? GetUserById(string id)
{
2024-01-31 19:57:54 +00:00
var user = _dc.Users.AsQueryable()
.FirstOrDefault(x => x.Id == id || (x.ExternalId != null && x.ExternalId == id));
return user != null ? user.ToUser() : null;
}
public User? GetUserByUserName(string userName)
{
var user = _dc.Users.AsQueryable().FirstOrDefault(x => x.UserName == userName.ToLower());
return user != null ? user.ToUser() : null;
2024-01-13 02:13:38 +00:00
}
public void CreateUser(User user)
{
if (user == null) return;
var userCollection = new UserDocument
{
2024-01-31 19:57:54 +00:00
Id = user.Id ?? Guid.NewGuid().ToString(),
2024-01-13 02:13:38 +00:00
UserName = user.UserName,
FirstName = user.FirstName,
LastName = user.LastName,
Salt = user.Salt,
Password = user.Password,
Email = user.Email,
2024-05-31 03:24:34 +00:00
Phone = user.Phone,
2024-01-31 15:15:41 +00:00
Source = user.Source,
2024-01-13 02:13:38 +00:00
ExternalId = user.ExternalId,
Role = user.Role,
2024-05-26 01:34:29 +00:00
VerificationCode = user.VerificationCode,
Verified = user.Verified,
2024-01-13 02:13:38 +00:00
CreatedTime = DateTime.UtcNow,
UpdatedTime = DateTime.UtcNow
};
_dc.Users.InsertOne(userCollection);
}
2024-05-26 01:34:29 +00:00
public void UpdateUserVerified(string userId)
{
var filter = Builders<UserDocument>.Filter.Eq(x => x.Id, userId);
var update = Builders<UserDocument>.Update.Set(x => x.Verified, true)
.Set(x => x.UpdatedTime, DateTime.UtcNow);
_dc.Users.UpdateOne(filter, update);
}
public void UpdateUserVerificationCode(string userId, string verficationCode)
{
var filter = Builders<UserDocument>.Filter.Eq(x => x.Id, userId);
var update = Builders<UserDocument>.Update.Set(x => x.VerificationCode, verficationCode)
.Set(x => x.UpdatedTime, DateTime.UtcNow);
_dc.Users.UpdateOne(filter, update);
}
public void UpdateUserPassword(string userId, string password)
{
var filter = Builders<UserDocument>.Filter.Eq(x => x.Id, userId);
var update = Builders<UserDocument>.Update.Set(x => x.Password, password)
.Set(x => x.UpdatedTime, DateTime.UtcNow);
_dc.Users.UpdateOne(filter, update);
}
2024-01-13 02:13:38 +00:00
}