private bool IsEnabled(string serviceName, string userName, string machineName, string feature)
        {
            using (var repositories = _repositoryContextFactory.Get())
            {
                var featureToggle = repositories.FeatureToggle.GetAll().Where(e => (e.ServiceName == serviceName || e.ServiceName == "*") && (e.UserName == userName || e.UserName == "*") && (e.MachineName == machineName || e.MachineName == "*") && e.Feature == feature).OrderBy(f => f.Priority).FirstOrDefault();

                return(featureToggle?.Enabled ?? false);
            }
        }
Esempio n. 2
0
        public void CanUseMessageRepository()
        {
            try
            {
                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageRepository;

                    cut.GetAll().Where(e => e.Id == _messageId).Should().BeEmpty();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageRepository;

                    cut.Insert(new Message
                    {
                        Id              = _messageId,
                        Topic           = "MyTopic",
                        Type            = "MyType",
                        Body            = "MyMessage",
                        PublishDateTime = DateTimeOffset.Now
                    });

                    repositoryContext.Save();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageRepository;

                    cut.GetAll().Where(e => e.Id == _messageId).Should().NotBeEmpty();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageRepository;

                    cut.Delete(_messageId);

                    repositoryContext.Save();
                }
            }
            finally
            {
                using (var entities = new Entities(_entityConnectionConfig))
                {
                    entities.Message.RemoveRange(entities.Message.Where(e => e.Id == _messageId));
                    entities.SaveChanges();
                }
            }
        }
Esempio n. 3
0
 public void CanCreateNullRepositories()
 {
     _repositoryContextFactory.Get().GetType().Should().Be <NullRepositoryContext>();
 }
        public void CanUseMessageBrokerServiceRepository()
        {
            try
            {
                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageBrokerServiceRepository;

                    cut.Get(ServerName, _serviceName).Should().BeNull();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageBrokerServiceRepository;

                    cut.Insert(new MessageBrokerService
                    {
                        ServerName      = ServerName,
                        ServiceName     = _serviceName,
                        LocaleQueueName = "MyLocaleQueueName",
                        RemoteQueueName = "MyRemoteQueueName",
                        StartDateTime   = DateTimeOffset.Now,
                        PulseDateTime   = DateTimeOffset.Now
                    });

                    repositoryContext.Save();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageBrokerServiceRepository;

                    var entity = cut.Get(ServerName, _serviceName);

                    entity.Should().NotBeNull();
                    entity.ServiceName.Should().Be(_serviceName);
                    entity.LocaleQueueName.Should().Be("MyLocaleQueueName");
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageBrokerServiceRepository;

                    var entity = cut.Get(ServerName, _serviceName);

                    entity.LocaleQueueName = "AnotherLocaleQueueName";
                    entity.RemoteQueueName = "MyRemoteQueueName";
                    entity.StartDateTime   = DateTimeOffset.Now;
                    entity.PulseDateTime   = DateTimeOffset.Now;

                    repositoryContext.Save();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageBrokerServiceRepository;

                    var entity = cut.Get(ServerName, _serviceName);

                    entity.LocaleQueueName.Should().Be("AnotherLocaleQueueName");

                    cut.GetAll().Count().Should().BeGreaterOrEqualTo(1);
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageBrokerServiceRepository;

                    cut.Delete(ServerName, _serviceName);

                    repositoryContext.Save();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageBrokerServiceRepository;

                    cut.Get(ServerName, _serviceName).Should().BeNull();
                }
            }
            finally
            {
                using (var entities = new Entities(_entityConnectionConfig))
                {
                    entities.MessageBrokerService.RemoveRange(entities.MessageBrokerService.Where(e => e.ServiceName == _serviceName));
                    entities.SaveChanges();
                }
            }
        }
        public void CanUseSubscriberRepository()
        {
            try
            {
                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.SubscriberRepository;

                    cut.Get(ServerName, _queueName).Should().BeNull();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.SubscriberRepository;

                    cut.Insert(new Subscriber
                    {
                        ServerName       = ServerName,
                        ServiceName      = "MyServiceName",
                        Topic            = "MyTopic",
                        Name             = "MySubscriber",
                        RegisterDateTime = DateTimeOffset.Now,
                        QueueName        = _queueName,
                        MessageType      = "String"
                    });

                    repositoryContext.Save();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.SubscriberRepository;

                    cut.Get(ServerName, _queueName).Should().NotBeNull();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.SubscriberRepository;

                    var entity = cut.Get(ServerName, _queueName);

                    entity.ServiceName      = "MyServiceName";
                    entity.Topic            = "AnotherTopic";
                    entity.Name             = "MySubscriber";
                    entity.RegisterDateTime = DateTimeOffset.Now;

                    repositoryContext.Save();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.SubscriberRepository;

                    cut.Get(ServerName, _queueName).Topic.Should().Be("AnotherTopic");
                    cut.GetAll().Count().Should().BeGreaterOrEqualTo(1);
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.SubscriberRepository;

                    cut.Delete(ServerName, _queueName);

                    repositoryContext.Save();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.SubscriberRepository;

                    cut.Get(ServerName, _queueName).Should().BeNull();
                }
            }
            finally
            {
                using (var entities = new Entities(_entityConnectionConfig))
                {
                    entities.Subscriber.RemoveRange(entities.Subscriber.Where(e => e.QueueName == _queueName));
                    entities.SaveChanges();
                }
            }
        }
        public void CanUseMessageStateRepository()
        {
            try
            {
                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageStateRepository;

                    cut.Get(_messageId, _subscriberName).Should().BeNull();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageStateRepository;

                    cut.Insert(new MessageState
                    {
                        MessageId      = _messageId,
                        SubscriberName = _subscriberName,
                        State          = "Unknown",
                        ErrorCount     = 0,
                        UpdateDateTime = DateTimeOffset.Now
                    });

                    repositoryContext.Save();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageStateRepository;

                    cut.Get(_messageId, _subscriberName).Should().NotBeNull();
                    cut.GetAll().Where(e => e.MessageId == _messageId).Should().NotBeNull();
                    cut.GetAll().Count().Should().BeGreaterOrEqualTo(1);
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageStateRepository;

                    cut.DeleteByMessageId(_messageId);

                    repositoryContext.Save();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageStateRepository;

                    cut.Get(_messageId, _subscriberName).Should().BeNull();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageStateRepository;

                    cut.Insert(new MessageState
                    {
                        MessageId      = _messageId,
                        SubscriberName = _subscriberName,
                        State          = "Unknown",
                        ErrorCount     = 0,
                        UpdateDateTime = DateTimeOffset.Now
                    });

                    repositoryContext.Save();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageStateRepository;

                    cut.DeleteBySubscriber(_subscriberName);

                    repositoryContext.Save();
                }

                using (var repositoryContext = _repositoryContextFactory.Get())
                {
                    var cut = repositoryContext.MessageStateRepository;

                    cut.Get(_messageId, _subscriberName).Should().BeNull();
                }
            }
            finally
            {
                using (var entities = new Entities(_entityConnectionConfig))
                {
                    entities.MessageState.RemoveRange(entities.MessageState.Where(e => e.MessageId == _messageId));
                    entities.SaveChanges();
                }
            }
        }