Skip to content

Instantly share code, notes, and snippets.

@derekgreer
derekgreer / MessagingModule.cs
Last active February 4, 2024 10:47
MassTransit MultiTenant Message Filter Example
using System;
using System.Collections.Generic;
using System.Net.Security;
using System.Security.Authentication;
using System.Threading.Tasks;
using Autofac;
using Autofac.Core;
using GreenPipes;
using MassTransit;
using MassTransit.ConsumeConfigurators;
public class RetryConsumerFilterSpecs
{
[Subject("Message Retry")]
public class when_a_handler_throws_an_exception_that_should_not_be_retried
{
static Action<IConsumeContext<string>> _nextStub;
static RetryConsumerFilter _filter;
static Exception _exception;
static Spy<IConsumeContext<string>> _consumeContextSpy;
@derekgreer
derekgreer / InMemorySqliteDatabaseInitializer.cs
Created October 26, 2016 21:26
InMemorySqliteDatabaseInitializer
public class InMemorySqliteDatabaseInitializer<TContext> : SqliteInitializerBase<TContext>
where TContext : DbContext
{
public InMemorySqliteDatabaseInitializer(DbModelBuilder modelBuilder)
: base(modelBuilder)
{
}
public override void InitializeDatabase(TContext context)
☺ DGreer@DEREKGREER /projects/Spikes/gulpSamples
$ npm install gulp --save-dev
gulp@3.9.0 node_modules\gulp
├── pretty-hrtime@1.0.0
├── interpret@0.6.2
├── deprecated@0.0.1
├── archy@1.0.0
├── minimist@1.1.1
├── semver@4.3.6
├── tildify@1.0.0 (user-home@1.1.1)
public class UserServiceSpecs
{
[Subcutaneous]
public class when_creating_an_inactive_account : SubjectBuilderContext
{
const string UserName = "testuser";
static AccountInfo _accountInfo;
static ExpectedObject _expectedUser;
static IUserService _userService;
Cleanup after = () => DnxDatabase.DeleteUser(UserName);
@derekgreer
derekgreer / ExpectedObjectExpectAnySnippet
Created September 15, 2014 22:39
Configuring ExpectedObject to match on a value you don't have at context setup time
_expectedPaymentAccountingTransaction = new
{
Amount = Expect.Any<decimal>(amount => amount == _paymentEvent.Amount)
}.ToExpectedObject();
@derekgreer
derekgreer / gist:1efd7d4e9d206cb2862b
Created September 10, 2014 16:08
NodaDb: A NoSql datastore
public class NodaDb<TKey, TValue> : Dictionary<TKey, TValue>
{
}
@derekgreer
derekgreer / git-commit-often.bash
Last active August 29, 2015 14:04
git-commit-often.bash
#!/bin/bash
while (( 1 ))
do
BRANCH=$(git rev-parse --abbrev-ref HEAD)
CHANGES=$(git status --porcelain)
if [[ "${CHANGES}" != "" && "${BRANCH}" != "master" ]]
then
@derekgreer
derekgreer / gist:1981240
Created March 5, 2012 21:33
Assertion First Example
[Integration]
[Subject(typeof (RabbitBus))]
public class when_subscribing_to_receive_a_message_type_without_an_explicit_subscription_registration
{
Establish context;
Because of;
It should_subscribe_with_the_default_registration_conventions = () => _actualMessage.ShouldEqual(_expectedMessage);
}
@derekgreer
derekgreer / rake_which
Created December 1, 2011 17:10
Rake which method
def which(cmd)
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
exts.each { |ext|
sep = File::ALT_SEPARATOR || File::SEPARATOR
exe = "#{path}#{sep}#{cmd}#{ext}"
return exe if File.executable? exe
}
end
return nil