kreta/Kreta.MessageBroker/DependencyContainer.cs
2024-03-13 00:33:46 +01:00

52 lines
1.7 KiB
C#

using Kreta.Core.IoC;
using Kreta.Core.MessageBroker;
using Kreta.Core.MessageBroker.Azure.EventHub.Client.Configuration;
using Kreta.Core.MessageBroker.Contract.MobileNotification;
using Kreta.MessageBroker.Client.MobileNotification;
using Kreta.MessageBroker.ClientFactory;
using Kreta.MessageBroker.Configuration;
using Kreta.MessageBroker.Propetries;
using Kreta.MessageBroker.TraceLog;
namespace Kreta.MessageBroker
{
/// <summary>
/// Dependency resolver of current layer
/// </summary>
class DependencyContainer : Core.IoC.DependencyContainer
{
#region [Properties]
/// <summary>
/// Instance
/// </summary>
public static IDependencyResolver Instance
{
get { return GetResolver(MessageBrokerLayer.Instance); }
}
#endregion
#region [Private/Protected Methods]
/// <summary>
/// Initialize
/// </summary>
protected override void Initialize()
{
RegisterSingleton<IMessageBrokerConfiguration>(MessageBrokerConfigurationSection.Instance);
RegisterSingleton<IAzureEventHubClientsConfiguration>(MessageBrokerConfigurationSection.Instance);
RegisterSingleton<IMessageClientFactory<string>, ClientFactory.AzureEventHubMessageClientFactory>();
RegisterSingleton<IJsonMessageClientFactory<MobileNotificationMessage>, MobileNotificationJsonMessageClientFactory>();
RegisterSingleton<ITraceMessageClient, TraceMessageClient>();
RegisterSingleton<ISerilogTraceLogger, SerilogTraceLogger>();
RegisterSingleton<MobileNotificationMessageClient>();
}
#endregion
}
}