Proof Of Concept initial
Adds initial files for a proof-of-concept project, including Dockerfile, .gitignore, project files, and MQTT-related services. This commit sets up the basic structure and configuration for exploring and validating the core concepts of the project.
This commit is contained in:
@@ -1,20 +1,31 @@
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace ProofOfConcept.Services;
|
||||
|
||||
public class MessageProcessor
|
||||
public interface IMessageProcessor
|
||||
{
|
||||
private ILogger<MessageProcessor> logger;
|
||||
Task ProcessMessage(string jsonMessage);
|
||||
}
|
||||
|
||||
public class MessageProcessor : IMessageProcessor
|
||||
{
|
||||
private readonly ILogger<MessageProcessor> logger;
|
||||
private MessageProcessorConfiguration configuration;
|
||||
|
||||
public MessageProcessor(ILogger<MessageProcessor> logger, IOptionsMonitor<MessageProcessorConfiguration> options)
|
||||
private readonly IMemoryCache memoryCache;
|
||||
|
||||
public MessageProcessor(ILogger<MessageProcessor> logger, IOptions<MessageProcessorConfiguration> options, IMemoryCache memoryCache)
|
||||
{
|
||||
this.logger = logger;
|
||||
this.configuration = options.CurrentValue;
|
||||
this.configuration = options.Value;
|
||||
|
||||
options.OnChange(newValue =>
|
||||
{
|
||||
this.configuration = newValue;
|
||||
logger.LogInformation("Configuration of {ClassName} changed", nameof(MessageProcessor));
|
||||
});
|
||||
this.memoryCache = memoryCache;
|
||||
}
|
||||
|
||||
public async Task ProcessMessage(string jsonMessage)
|
||||
{
|
||||
this.logger.LogTrace("Processing message from Tesla: {Message}", jsonMessage);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user