DocSpace-buildtools/common/ASC.Core.Common/Notify/Telegram/Dao/TelegramDao.cs

86 lines
2.4 KiB
C#
Raw Normal View History

2022-03-15 16:59:24 +00:00
namespace ASC.Core.Common.Notify.Telegram;
2022-02-15 11:52:43 +00:00
public class ConfigureTelegramDaoService : IConfigureNamedOptions<TelegramDao>
{
private readonly DbContextManager<TelegramDbContext> _dbContextManager;
2022-02-15 11:52:43 +00:00
public ConfigureTelegramDaoService(DbContextManager<TelegramDbContext> dbContextManager)
{
_dbContextManager = dbContextManager;
}
2022-02-15 11:52:43 +00:00
public void Configure(string name, TelegramDao options)
{
Configure(options);
options.TelegramDbContext = _dbContextManager.Get(name);
}
2022-02-15 11:52:43 +00:00
public void Configure(TelegramDao options)
{
2022-02-15 11:52:43 +00:00
options.TelegramDbContext = _dbContextManager.Value;
}
}
2022-02-15 11:52:43 +00:00
[Scope(typeof(ConfigureTelegramDaoService))]
public class TelegramDao
{
public TelegramDbContext TelegramDbContext { get; set; }
public TelegramDao() { }
2022-02-15 11:52:43 +00:00
public TelegramDao(DbContextManager<TelegramDbContext> dbContextManager)
{
TelegramDbContext = dbContextManager.Value;
}
public void RegisterUser(Guid userId, int tenantId, int telegramId)
{
var user = new TelegramUser
{
2022-02-15 11:52:43 +00:00
PortalUserId = userId,
TenantId = tenantId,
TelegramUserId = telegramId
};
2022-02-15 11:52:43 +00:00
TelegramDbContext.AddOrUpdate(r => r.Users, user);
TelegramDbContext.SaveChanges();
}
2022-02-15 11:52:43 +00:00
public TelegramUser GetUser(Guid userId, int tenantId)
{
return TelegramDbContext.Users
.AsNoTracking()
.Where(r => r.PortalUserId == userId)
.Where(r => r.TenantId == tenantId)
.FirstOrDefault();
}
2022-02-15 11:52:43 +00:00
public List<TelegramUser> GetUser(int telegramId)
{
return TelegramDbContext.Users
.AsNoTracking()
.Where(r => r.TelegramUserId == telegramId)
.ToList();
}
2022-02-15 11:52:43 +00:00
public void Delete(Guid userId, int tenantId)
{
var toRemove = TelegramDbContext.Users
.Where(r => r.PortalUserId == userId)
.Where(r => r.TenantId == tenantId)
.ToList();
2022-02-15 11:52:43 +00:00
TelegramDbContext.Users.RemoveRange(toRemove);
TelegramDbContext.SaveChanges();
}
2022-02-15 11:52:43 +00:00
public void Delete(int telegramId)
{
var toRemove = TelegramDbContext.Users
.Where(r => r.TelegramUserId == telegramId)
.ToList();
2022-02-15 11:52:43 +00:00
TelegramDbContext.Users.RemoveRange(toRemove);
TelegramDbContext.SaveChanges();
}
}