Continue to modularize even more components

This commit is contained in:
2021-12-28 21:52:41 -08:00
parent c1b0d88b4c
commit 81f156475d
9 changed files with 40 additions and 12 deletions

View File

@@ -0,0 +1,40 @@
#nullable disable
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using TwilioSMSReceiver.Common.Interfaces;
using TwilioSMSReceiver.Data;
using TwilioSMSReceiver.Data.Models;
namespace TwilioSMSReceiver.Common.MessageHandlers
{
public abstract class BaseHandler : IMessageHandler
{
protected readonly SMSDbCtx sMSDbCtx;
protected readonly ILogger<BaseHandler> _logger;
protected readonly IServiceProvider _serviceProvider;
public BaseHandler(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
sMSDbCtx = _serviceProvider.CreateScope().ServiceProvider.GetService<SMSDbCtx>();
_logger = _serviceProvider.CreateScope().ServiceProvider.GetService<ILogger<BaseHandler>>();
}
public virtual async Task<bool> RelaySms(SMSModel model)
{
if (sMSDbCtx.SMSMessages.Any(b => b.Id == model.Id))
{
var message =
sMSDbCtx.SMSMessages.Where(b => b.Id == model.Id).First();
if (!message.IsForwardedYet)
{
_logger.LogInformation($"Marking message with id {message.Id} as forwarded");
message.IsForwardedYet = true;
sMSDbCtx.SMSMessages.Update(message);
await sMSDbCtx.SaveChangesAsync();
return true;
}
}
return false;
}
}
}