Dkeshri.DataSync.DbChangeReceiver
1.1.3
See the version list below for details.
dotnet add package Dkeshri.DataSync.DbChangeReceiver --version 1.1.3
NuGet\Install-Package Dkeshri.DataSync.DbChangeReceiver -Version 1.1.3
<PackageReference Include="Dkeshri.DataSync.DbChangeReceiver" Version="1.1.3" />
paket add Dkeshri.DataSync.DbChangeReceiver --version 1.1.3
#r "nuget: Dkeshri.DataSync.DbChangeReceiver, 1.1.3"
// Install Dkeshri.DataSync.DbChangeReceiver as a Cake Addin #addin nuget:?package=Dkeshri.DataSync.DbChangeReceiver&version=1.1.3 // Install Dkeshri.DataSync.DbChangeReceiver as a Cake Tool #tool nuget:?package=Dkeshri.DataSync.DbChangeReceiver&version=1.1.3
Data-Sync-Receiver
This will subscribe to Message Broker like RabbitMq
Queue. On Message received, Apply changes to MSSQL
Database.
This package only support RabbitMQ
.
Installation Steps
Pre-requisite
Message Broker need to be running. (RabbitMq)
How to Use
This package is using the IServiceCollection
to setup. There is an Extension AddDbChangeReceiver
Method is use to setup.
you need to provide Message Broker Details (like rabbitMq) and MsSql Connection details to work this package.
Receive Message from Queue
If you want to receive message that are send directly to queue then you need to set only Queue Propperties of RabbitMq Config.
Step 1
For Queue
services.AddDbChangeReceiver((config) =>
{
config.MessageBroker.AddRabbitMqServices((rabbitMqConfig) =>
{
rabbitMqConfig.HostName = "rabbitMqHostIp";
rabbitMqConfig.Port = 5672;
rabbitMqConfig.UserName = "userName";
rabbitMqConfig.Password = "password";
rabbitMqConfig.Queue.QueueName = "QueueName";
});
config.AddDataLayer((dbType, config) =>
{
dbType = DatabaseType.MSSQL;
config.ConnectionString = "Server=hostIp;Database=DatabaseName;User Id=userid;Password=YourDbPassword;Encrypt=False";
config.TransactionTimeOutInSec = 30;
});
});
For Exchange
services.AddDbChangeReceiver((config) =>
{
config.MessageBroker.AddRabbitMqServices((rabbitMqConfig) =>
{
rabbitMqConfig.HostName = "rabbitMqHostIp";
rabbitMqConfig.Port = 5672;
rabbitMqConfig.UserName = "userName";
rabbitMqConfig.Password = "password";
rabbitMqConfig.Queue.QueueName = "QueueName";
rabbitMqConfig.Queue.ExchangeName = "ExchangeName";
rabbitMqConfig.Queue.RoutingKeys = ["RoutingKey1"];
});
config.AddDataLayer((dbType, config) =>
{
dbType = DatabaseType.MSSQL;
config.ConnectionString = "Server=hostIp;Database=DatabaseName;User Id=userid;Password=YourDbPassword;Encrypt=False";
config.TransactionTimeOutInSec = 30;
});
});
**Step 2 😗*After Service Configuration call UseDbChangeReceiver
Extension Method of Ihost
var host = builder.UseConsoleLifetime().Build();
host.UseDbChangeReceiver();
Full Example for Queue
Lets say we have .Net Core Console Application
, Use below code in Program.cs
file and run the application.
using Dkeshri.DataSync.DbChangeReceiver.Extenstions;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Dkeshri.MessageQueue.RabbitMq.Extensions;
var builder = Host.CreateDefaultBuilder(args);
builder.ConfigureServices((hostContext, services) =>
{
services.AddDbChangeReceiver((config) =>
{
config.MessageBroker.AddRabbitMqServices((rabbitMqConfig) =>
{
rabbitMqConfig.HostName = "rabbitMqHostIp";
rabbitMqConfig.Port = 5672;
rabbitMqConfig.UserName = "userName";
rabbitMqConfig.Password = "password";
rabbitMqConfig.Queue.QueueName = "QueueName";
});
config.AddDataLayer((dbType, config) =>
{
dbType = DatabaseType.MSSQL;
config.ConnectionString = "Server=hostIp;Database=DatabaseName;User Id=userid;Password=YourDbPassword;Encrypt=False";
config.TransactionTimeOutInSec = 30;
});
});
});
var host = builder.UseConsoleLifetime().Build();
host.UseDbChangeReceiver();
host.RunAsync().Wait();
Full Example for Exchange
using Dkeshri.DataSync.DbChangeReceiver.Extenstions;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Dkeshri.MessageQueue.RabbitMq.Extensions;
var builder = Host.CreateDefaultBuilder(args);
builder.ConfigureServices((hostContext, services) =>
{
services.AddDbChangeReceiver((config) =>
{
config.MessageBroker.AddRabbitMqServices((rabbitMqConfig) =>
{
rabbitMqConfig.HostName = "rabbitMqHostIp";
rabbitMqConfig.Port = 5672;
rabbitMqConfig.UserName = "userName";
rabbitMqConfig.Password = "password";
rabbitMqConfig.Queue.QueueName = "QueueName";
rabbitMqConfig.Queue.ExchangeName = "ExchangeName";
rabbitMqConfig.Queue.RoutingKeys = ["RoutingKey1"];
});
config.AddDataLayer((dbType, config) =>
{
dbType = DatabaseType.MSSQL;
config.ConnectionString = "Server=hostIp;Database=DatabaseName;User Id=userid;Password=YourDbPassword;Encrypt=False";
config.TransactionTimeOutInSec = 30;
});
});
});
var host = builder.UseConsoleLifetime().Build();
host.UseDbChangeReceiver();
host.RunAsync().Wait();
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net8.0
- Dkeshri.DataSync.Common (>= 1.1.3)
- Dkeshri.MessageQueue (>= 2.0.5)
- MediatR (>= 12.4.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.