@@ -17,7 +17,6 @@ namespace Microsoft.Extensions.DependencyInjection | |||||
/// <returns>The <see cref="ConsistencyBuilder"/> instance this method extends.</returns> | /// <returns>The <see cref="ConsistencyBuilder"/> instance this method extends.</returns> | ||||
public static ConsistencyBuilder AddEntityFrameworkStores<TContext>(this ConsistencyBuilder builder) | public static ConsistencyBuilder AddEntityFrameworkStores<TContext>(this ConsistencyBuilder builder) | ||||
where TContext : DbContext { | where TContext : DbContext { | ||||
builder.Services.AddScoped<IConsistencyMessageStore, ConsistencyMessageStore<TContext>>(); | builder.Services.AddScoped<IConsistencyMessageStore, ConsistencyMessageStore<TContext>>(); | ||||
return builder; | return builder; | ||||
@@ -1,5 +1,4 @@ | |||||
using System; | using System; | ||||
using System.ComponentModel; | |||||
using System.Threading; | using System.Threading; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
using Cap.Consistency.Infrastructure; | using Cap.Consistency.Infrastructure; | ||||
@@ -1,6 +1,5 @@ | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Linq; | |||||
using System.Text; | using System.Text; | ||||
using Cap.Consistency.Consumer; | using Cap.Consistency.Consumer; | ||||
using Cap.Consistency.Infrastructure; | using Cap.Consistency.Infrastructure; | ||||
@@ -11,7 +10,6 @@ namespace Cap.Consistency.Kafka | |||||
{ | { | ||||
public class KafkaConsumerClient : IConsumerClient | public class KafkaConsumerClient : IConsumerClient | ||||
{ | { | ||||
private readonly string _groupId; | private readonly string _groupId; | ||||
private readonly string _bootstrapServers; | private readonly string _bootstrapServers; | ||||
@@ -33,7 +31,6 @@ namespace Cap.Consistency.Kafka | |||||
} | } | ||||
public void Subscribe(string topicName, int partition) { | public void Subscribe(string topicName, int partition) { | ||||
if (_consumerClient == null) { | if (_consumerClient == null) { | ||||
InitKafkaClient(); | InitKafkaClient(); | ||||
} | } | ||||
@@ -72,7 +69,6 @@ namespace Cap.Consistency.Kafka | |||||
MessageReceieved?.Invoke(sender, message); | MessageReceieved?.Invoke(sender, message); | ||||
} | } | ||||
#endregion | |||||
#endregion private methods | |||||
} | } | ||||
} | |||||
} |
@@ -1,7 +1,4 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using Cap.Consistency.Consumer; | |||||
using Cap.Consistency.Consumer; | |||||
namespace Cap.Consistency.Kafka | namespace Cap.Consistency.Kafka | ||||
{ | { | ||||
@@ -11,4 +8,4 @@ namespace Cap.Consistency.Kafka | |||||
return new KafkaConsumerClient(groupId, clientHostAddress); | return new KafkaConsumerClient(groupId, clientHostAddress); | ||||
} | } | ||||
} | } | ||||
} | |||||
} |
@@ -14,7 +14,6 @@ namespace Cap.Consistency.Kafka | |||||
{ | { | ||||
public class KafkaProducerClient : IProducerClient | public class KafkaProducerClient : IProducerClient | ||||
{ | { | ||||
private readonly ConsistencyOptions _options; | private readonly ConsistencyOptions _options; | ||||
private readonly ILogger _logger; | private readonly ILogger _logger; | ||||
@@ -23,7 +22,6 @@ namespace Cap.Consistency.Kafka | |||||
_logger = loggerFactory.CreateLogger(nameof(KafkaProducerClient)); | _logger = loggerFactory.CreateLogger(nameof(KafkaProducerClient)); | ||||
} | } | ||||
public Task SendAsync(string topic, string content) { | public Task SendAsync(string topic, string content) { | ||||
var config = new Dictionary<string, object> { { "bootstrap.servers", _options.BrokerUrlList } }; | var config = new Dictionary<string, object> { { "bootstrap.servers", _options.BrokerUrlList } }; | ||||
try { | try { | ||||
@@ -42,4 +40,4 @@ namespace Cap.Consistency.Kafka | |||||
} | } | ||||
} | } | ||||
} | } | ||||
} | |||||
} |
@@ -1,7 +1,4 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using Cap.Consistency.Abstractions; | |||||
using Cap.Consistency.Abstractions; | |||||
namespace Cap.Consistency.Kafka | namespace Cap.Consistency.Kafka | ||||
{ | { | ||||
@@ -31,4 +28,4 @@ namespace Cap.Consistency.Kafka | |||||
return Name; | return Name; | ||||
} | } | ||||
} | } | ||||
} | |||||
} |
@@ -1,8 +1,4 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using Cap.Consistency; | |||||
using Cap.Consistency.Consumer; | |||||
using Cap.Consistency.Consumer; | |||||
using Cap.Consistency.Kafka; | using Cap.Consistency.Kafka; | ||||
using Cap.Consistency.Producer; | using Cap.Consistency.Producer; | ||||
@@ -11,13 +7,11 @@ namespace Microsoft.Extensions.DependencyInjection | |||||
public static class ConsistencyBuilderExtensions | public static class ConsistencyBuilderExtensions | ||||
{ | { | ||||
public static ConsistencyBuilder AddKafka(this ConsistencyBuilder builder) { | public static ConsistencyBuilder AddKafka(this ConsistencyBuilder builder) { | ||||
builder.Services.AddSingleton<IConsumerClientFactory, KafkaConsumerClientFactory>(); | builder.Services.AddSingleton<IConsumerClientFactory, KafkaConsumerClientFactory>(); | ||||
builder.Services.AddTransient<IProducerClient, KafkaProducerClient>(); | builder.Services.AddTransient<IProducerClient, KafkaProducerClient>(); | ||||
return builder; | return builder; | ||||
} | } | ||||
} | } | ||||
} | |||||
} |
@@ -1,6 +1,5 @@ | |||||
using System; | using System; | ||||
using System.Text; | using System.Text; | ||||
using System.Threading.Tasks; | |||||
using Cap.Consistency.Consumer; | using Cap.Consistency.Consumer; | ||||
using Cap.Consistency.Infrastructure; | using Cap.Consistency.Infrastructure; | ||||
using RabbitMQ.Client; | using RabbitMQ.Client; | ||||
@@ -39,8 +38,7 @@ namespace Cap.Consistency.RabbitMQ | |||||
} | } | ||||
public void Listening(TimeSpan timeout) { | public void Listening(TimeSpan timeout) { | ||||
// Task.Delay(timeout).Wait(); | |||||
// Task.Delay(timeout).Wait(); | |||||
var consumer = new EventingBasicConsumer(_channel); | var consumer = new EventingBasicConsumer(_channel); | ||||
consumer.Received += OnConsumerReceived; | consumer.Received += OnConsumerReceived; | ||||
@@ -69,4 +67,4 @@ namespace Cap.Consistency.RabbitMQ | |||||
MessageReceieved?.Invoke(sender, message); | MessageReceieved?.Invoke(sender, message); | ||||
} | } | ||||
} | } | ||||
} | |||||
} |
@@ -1,7 +1,4 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using Cap.Consistency.Consumer; | |||||
using Cap.Consistency.Consumer; | |||||
namespace Cap.Consistency.RabbitMQ | namespace Cap.Consistency.RabbitMQ | ||||
{ | { | ||||
@@ -11,4 +8,4 @@ namespace Cap.Consistency.RabbitMQ | |||||
return new RabbitMQConsumerClient(groupId, clientHostAddress); | return new RabbitMQConsumerClient(groupId, clientHostAddress); | ||||
} | } | ||||
} | } | ||||
} | |||||
} |
@@ -1,6 +1,4 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
using Cap.Consistency.Infrastructure; | using Cap.Consistency.Infrastructure; | ||||
using Cap.Consistency.Producer; | using Cap.Consistency.Producer; | ||||
@@ -12,7 +10,6 @@ namespace Cap.Consistency.RabbitMQ | |||||
{ | { | ||||
public class RabbitMQProducerClient : IProducerClient | public class RabbitMQProducerClient : IProducerClient | ||||
{ | { | ||||
private readonly ConsistencyOptions _options; | private readonly ConsistencyOptions _options; | ||||
private readonly ILogger _logger; | private readonly ILogger _logger; | ||||
@@ -28,7 +25,6 @@ namespace Cap.Consistency.RabbitMQ | |||||
channel.ExchangeDeclare(exchange: "topic_logs", | channel.ExchangeDeclare(exchange: "topic_logs", | ||||
type: "topic"); | type: "topic"); | ||||
var body = Encoding.UTF8.GetBytes(content); | var body = Encoding.UTF8.GetBytes(content); | ||||
channel.BasicPublish(exchange: "topic_logs", | channel.BasicPublish(exchange: "topic_logs", | ||||
routingKey: topic, | routingKey: topic, | ||||
@@ -39,4 +35,4 @@ namespace Cap.Consistency.RabbitMQ | |||||
} | } | ||||
} | } | ||||
} | } | ||||
} | |||||
} |
@@ -1,12 +1,6 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using Cap.Consistency.Infrastructure; | |||||
namespace Cap.Consistency.Consumer | |||||
namespace Cap.Consistency.Consumer | |||||
{ | { | ||||
public interface IConsumerHandler: ITopicRouteHandler | |||||
public interface IConsumerHandler : ITopicServer | |||||
{ | { | ||||
} | } | ||||
} | |||||
} |
@@ -1,7 +1,4 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Threading.Tasks; | |||||
using System.Threading.Tasks; | |||||
using Cap.Consistency.Infrastructure; | using Cap.Consistency.Infrastructure; | ||||
using Cap.Consistency.Store; | using Cap.Consistency.Store; | ||||
using Microsoft.AspNetCore.Builder.Internal; | using Microsoft.AspNetCore.Builder.Internal; | ||||
@@ -54,6 +51,5 @@ namespace Cap.Consistency.EntityFrameworkCore.Test | |||||
operateResult = await messageManager.DeleteAsync(user); | operateResult = await messageManager.DeleteAsync(user); | ||||
Assert.True(operateResult.Succeeded); | Assert.True(operateResult.Succeeded); | ||||
} | } | ||||
} | } | ||||
} | |||||
} |
@@ -1,5 +1,4 @@ | |||||
using System; | using System; | ||||
using System.Collections.Generic; | |||||
using System.Linq; | using System.Linq; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
using Cap.Consistency.Infrastructure; | using Cap.Consistency.Infrastructure; | ||||
@@ -27,7 +26,8 @@ namespace Cap.Consistency.EntityFrameworkCore.Test | |||||
public class ApplicationDbContext : ConsistencyDbContext | public class ApplicationDbContext : ConsistencyDbContext | ||||
{ | { | ||||
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { } | |||||
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { | |||||
} | |||||
} | } | ||||
[ConditionalFact] | [ConditionalFact] | ||||
@@ -75,7 +75,6 @@ namespace Cap.Consistency.EntityFrameworkCore.Test | |||||
Assert.True(result.Succeeded); | Assert.True(result.Succeeded); | ||||
} | } | ||||
public ConsistencyDbContext CreateContext(bool delete = false) { | public ConsistencyDbContext CreateContext(bool delete = false) { | ||||
var db = DbUtil.Create<ConsistencyDbContext>(_fixture.ConnectionString); | var db = DbUtil.Create<ConsistencyDbContext>(_fixture.ConnectionString); | ||||
if (delete) { | if (delete) { | ||||
@@ -101,4 +100,4 @@ namespace Cap.Consistency.EntityFrameworkCore.Test | |||||
} | } | ||||
public class ApplicationMessage : ConsistencyMessage { } | public class ApplicationMessage : ConsistencyMessage { } | ||||
} | |||||
} |
@@ -3,7 +3,6 @@ using Cap.Consistency.Infrastructure; | |||||
using Cap.Consistency.Store; | using Cap.Consistency.Store; | ||||
using Cap.Consistency.Test; | using Cap.Consistency.Test; | ||||
using Microsoft.AspNetCore.Testing; | using Microsoft.AspNetCore.Testing; | ||||
using Microsoft.EntityFrameworkCore; | |||||
using Microsoft.Extensions.DependencyInjection; | using Microsoft.Extensions.DependencyInjection; | ||||
using Xunit; | using Xunit; | ||||
@@ -64,8 +64,7 @@ namespace Cap.Consistency.Test | |||||
store.VerifyAll(); | store.VerifyAll(); | ||||
} | } | ||||
public ConsistencyMessageManager TestConsistencyMessageManager(IConsistencyMessageStore store = null) | |||||
{ | |||||
public ConsistencyMessageManager TestConsistencyMessageManager(IConsistencyMessageStore store = null) { | |||||
store = store ?? new Mock<IConsistencyMessageStore>().Object; | store = store ?? new Mock<IConsistencyMessageStore>().Object; | ||||
var mockLogger = new Mock<ILogger<ConsistencyMessageManager>>().Object; | var mockLogger = new Mock<ILogger<ConsistencyMessageManager>>().Object; | ||||
var manager = new ConsistencyMessageManager(store, null, mockLogger); | var manager = new ConsistencyMessageManager(store, null, mockLogger); | ||||