This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
x.Quarantine(c => { | |
var logRoot = c.Resolve<IStreamingRoot>(); | |
var registry = c.Resolve<QueueWriterRegistry>(); | |
IQueueWriterFactory factory; | |
if (!registry.TryGet("azure-account-name", out factory)) | |
throw new IOE("Didn't find the specified Azure account. Did you register it in the queue registry?") | |
// registration is right now, if you don't have it already | |
// builder.Advanced.RegisterQueueWriterFactory(c => new AzureQueueWriterFactory(account, c.Resolve<IEnvelopeStreamer>())); | |
return new SampleQuarantine(logging, factory); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// this dispatchers routes all incoming messages between 2 queues (commands/events) | |
// and also records all messages into a tape storage. | |
// fore registration sample see https://gist.github.com/1035950 | |
public sealed class RoutingDispatcher : ISingleThreadMessageDispatcher | |
{ | |
readonly IDictionary<string, IQueueWriter> _routes = new Dictionary<string, IQueueWriter>(); | |
readonly QueueWriterRegistry _factories; | |
readonly string _endpoint; | |
readonly ITapeWriter _writer; | |
readonly IEnvelopeStreamer _streamer; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
m.AddAzureProcess(config, IdFor.Publish, p => | |
{ | |
p.DispatcherIs( | |
(c, a, x) => | |
{ | |
// provided by the bus | |
var registry = c.Resolve<QueueWriterRegistry>(); | |
var streamer = c.Resolve<IEnvelopeStreamer>(); | |
// not provided by bus in v2.0 | |
var tapeWriter = c.Resolve<ITapeWriter>(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// the gist is discussed in: http://groups.google.com/group/lokad/browse_thread/thread/4d39dc299037ea09 | |
// This is a sample of a timer service for powering up sagas (for Lokad.CQRS v2.0) | |
// register it in CqrsHostBuilder like this: | |
// hostBuilder.Advanced.ConfigureContainer(cb => cb.RegisterType<TimerService>().As<IEngineProcess>()); | |
public sealed class TimerService : IEngineProcess | |
{ | |
readonly IMessageSender _sender; | |
public TimerService(IMessageSender sender) | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Sample of running AppEngine inside the Web Role, essentially merging | |
// 1 worker role and 1 web role (for Lokad.CQRS v2.0) | |
// For explanation see: http://abdullin.com/journal/2011/7/6/lokadcqrs-can-make-windows-azure-cheaper-for-you.html | |
public class WebRole : RoleEntryPoint | |
{ | |
CqrsEngineHost _host; | |
readonly CancellationTokenSource _source = new CancellationTokenSource(); | |
public override bool OnStart() | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// <summary> | |
/// This class scans all available specifications for messages used | |
/// then performs round-trip via specified serializer, | |
/// and then does the structural comparison of resulting values | |
/// </summary> | |
[TestFixture] | |
public sealed class TestMessageSerialization | |
{ | |
static Group[] ListMessages() | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// <summary> | |
/// Source: https://gist.github.com/1308830 | |
/// This simple envelope includes only: | |
/// <code> | |
/// Header - int32 | |
/// TotalLength - int32 | |
/// IdLength - int32 | |
/// UTF8-encoded message ID - byte[IdLength] | |
/// ContractLength - int32 | |
/// UTF-encoded contract name 0 byte[ContractLength] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Snippet that shows AJAX search over a denormalized projection (handled by server) in async | |
// for sending commands in async - just do the AJAX post to server | |
// for getting changes - just poll the server for view version | |
// for cases when polling is expensive - use web sockets. | |
<script type="text/javascript"> | |
$(document).ready(function () { | |
$('#searchButton').click(function () { | |
GetData($('#searchbox').val()); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// sample unit test for a command "LockUser" | |
public class lock_user : user_syntax | |
{ | |
static readonly UserId id = new UserId(1); | |
static readonly SecurityId sec = new SecurityId(1); | |
static readonly TimeSpan fiveMins = TimeSpan.FromMinutes(5); | |
[Test] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This is slightly advanced usage scenario of Lokad A+ES tests, that shows | |
// setting up test implementations of domain services in ES+friendly way | |
// (really simple) that also prints out in the specifications. Price is an | |
// instance of IPricingService, used by Application service, while Clock | |
// is a static singleton actually. | |
[Test] | |
public void with_multiple_entries_and_previous_balance() |