FirebaseDbContext - async

This commit is contained in:
Anton Suhorukov 2023-03-15 16:39:41 +03:00
parent 393887f67b
commit e5749eb986
4 changed files with 26 additions and 26 deletions

View File

@ -36,16 +36,16 @@ public class FirebaseDao
_dbContextFactory = dbContextFactory;
}
public FireBaseUser RegisterUserDevice(Guid userId, int tenantId, string fbDeviceToken, bool isSubscribed, string application)
public async Task<FireBaseUser> RegisterUserDeviceAsync(Guid userId, int tenantId, string fbDeviceToken, bool isSubscribed, string application)
{
using var dbContext = _dbContextFactory.CreateDbContext();
var user = dbContext.Users
using var dbContext = await _dbContextFactory.CreateDbContextAsync();
var user = await dbContext.Users
.AsNoTracking()
.Where(r => r.UserId == userId)
.Where(r => r.TenantId == tenantId)
.Where(r => r.Application == application)
.Where(r => r.FirebaseDeviceToken == fbDeviceToken)
.FirstOrDefault();
.FirstOrDefaultAsync();
if (user == null)
@ -58,8 +58,8 @@ public class FirebaseDao
IsSubscribed = isSubscribed,
Application = application
};
dbContext.Add(newUser);
dbContext.SaveChanges();
await dbContext.AddAsync(newUser);
await dbContext.SaveChangesAsync();
return newUser;
}
@ -67,20 +67,20 @@ public class FirebaseDao
return user;
}
public List<FireBaseUser> GetUserDeviceTokens(Guid userId, int tenantId, string application)
public async Task<List<FireBaseUser>> GetUserDeviceTokensAsync(Guid userId, int tenantId, string application)
{
using var dbContext = _dbContextFactory.CreateDbContext();
return dbContext.Users
using var dbContext = await _dbContextFactory.CreateDbContextAsync();
return await dbContext.Users
.AsNoTracking()
.Where(r => r.UserId == userId)
.Where(r => r.TenantId == tenantId)
.Where(r => r.Application == application)
.ToList();
.ToListAsync();
}
public FireBaseUser UpdateUser(Guid userId, int tenantId, string fbDeviceToken, bool isSubscribed, string application)
public async Task<FireBaseUser> UpdateUserAsync(Guid userId, int tenantId, string fbDeviceToken, bool isSubscribed, string application)
{
using var dbContext = _dbContextFactory.CreateDbContext();
using var dbContext = await _dbContextFactory.CreateDbContextAsync();
var user = new FireBaseUser
{
UserId = userId,
@ -91,7 +91,7 @@ public class FirebaseDao
};
dbContext.Update(user);
dbContext.SaveChanges();
await dbContext.SaveChangesAsync();
return user;
}

View File

@ -52,7 +52,7 @@ public class FirebaseHelper
_firebaseDao = firebaseDao;
}
public void SendMessage(NotifyMessage msg)
public async Task SendMessageAsync(NotifyMessage msg)
{
var defaultInstance = FirebaseApp.DefaultInstance;
if (defaultInstance == null)
@ -86,7 +86,7 @@ public class FirebaseHelper
if (productID == new Guid("{E67BE73D-F9AE-4ce1-8FEC-1880CB518CB4}")) //documents product
{
fireBaseUser = _firebaseDao.GetUserDeviceTokens(user.Id, msg.TenantId, PushConstants.PushDocAppName);
fireBaseUser = await _firebaseDao.GetUserDeviceTokensAsync(user.Id, msg.TenantId, PushConstants.PushDocAppName);
}
foreach (var fb in fireBaseUser)
@ -109,19 +109,19 @@ public class FirebaseHelper
}
}
public FireBaseUser RegisterUserDevice(string fbDeviceToken, bool isSubscribed, string application)
public Task<FireBaseUser> RegisterUserDeviceAsync(string fbDeviceToken, bool isSubscribed, string application)
{
var userId = _authContext.CurrentAccount.ID;
var tenantId = _tenantManager.GetCurrentTenant().Id;
return _firebaseDao.RegisterUserDevice(userId, tenantId, fbDeviceToken, isSubscribed, application);
return _firebaseDao.RegisterUserDeviceAsync(userId, tenantId, fbDeviceToken, isSubscribed, application);
}
public FireBaseUser UpdateUser(string fbDeviceToken, bool isSubscribed, string application)
public Task<FireBaseUser> UpdateUserAsync(string fbDeviceToken, bool isSubscribed, string application)
{
var userId = _authContext.CurrentAccount.ID;
var tenantId = _tenantManager.GetCurrentTenant().Id;
return _firebaseDao.UpdateUser(userId, tenantId, fbDeviceToken, isSubscribed, application);
return _firebaseDao.UpdateUserAsync(userId, tenantId, fbDeviceToken, isSubscribed, application);
}
}

View File

@ -41,7 +41,7 @@ public class PushSender : INotifySender
public void Init(IDictionary<string, string> properties) { }
public Task<NoticeSendResult> Send(NotifyMessage m)
public async Task<NoticeSendResult> Send(NotifyMessage m)
{
if (!string.IsNullOrEmpty(m.Content))
{
@ -52,14 +52,14 @@ public class PushSender : INotifySender
{
using var scope = _serviceProvider.CreateScope();
var FirebaseHelper = scope.ServiceProvider.GetService<FirebaseHelper>();
FirebaseHelper.SendMessage(m);
await FirebaseHelper.SendMessageAsync(m);
}
catch (Exception e)
{
_logger.ErrorUnexpected(e);
}
return Task.FromResult(NoticeSendResult.OK);
return NoticeSendResult.OK;
}
}
public static class FirebaseSenderExtension

View File

@ -48,9 +48,9 @@ public class PushController : BaseSettingsController
/// </summary>
/// <returns>FireBase user</returns>
[HttpPost("push/docregisterdevice")]
public FireBaseUser DocRegisterPusnNotificationDevice(FirebaseRequestsDto inDto)
public Task<FireBaseUser> DocRegisterPusnNotificationDeviceAsync(FirebaseRequestsDto inDto)
{
return _firebaseHelper.RegisterUserDevice(inDto.FirebaseDeviceToken, inDto.IsSubscribed, PushConstants.PushDocAppName);
return _firebaseHelper.RegisterUserDeviceAsync(inDto.FirebaseDeviceToken, inDto.IsSubscribed, PushConstants.PushDocAppName);
}
/// <summary>
@ -58,9 +58,9 @@ public class PushController : BaseSettingsController
/// </summary>
/// <returns>FireBase user</returns>
[HttpPut("push/docsubscribe")]
public FireBaseUser SubscribeDocumentsPushNotification(FirebaseRequestsDto inDto)
public Task<FireBaseUser> SubscribeDocumentsPushNotificationAsync(FirebaseRequestsDto inDto)
{
return _firebaseHelper.UpdateUser(inDto.FirebaseDeviceToken, inDto.IsSubscribed, PushConstants.PushDocAppName);
return _firebaseHelper.UpdateUserAsync(inDto.FirebaseDeviceToken, inDto.IsSubscribed, PushConstants.PushDocAppName);
}
}