Topic Context
- Module 1
- The worst welcome E001
- Messaging basics E002
- Commanding your words E003
- Event sourcing basics E004
- Aggregating stories E005
- Community Code and questions 1 E006
- Re-Factory E007
- Frameworks over forms is a design obsession E008
/// <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] |
/// <summary> | |
/// Creates convention-based routing rules | |
/// </summary> | |
public sealed class RedirectToDynamicCommand | |
{ | |
readonly IDictionary<Type, Wire> _dict = new Dictionary<Type, Wire>(); | |
sealed class Wire | |
{ | |
public MethodInfo Method; |
// 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()); |
// 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 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() |
Topic Context
public class FetchEventStoreProcessor : ICommandProcessor | |
{ | |
public string Key { get { return "FETCH"; } } | |
public string Usage { get { return "FETCH <remoteConfig> [<folderNameInLokadData>]"; } } | |
public bool Execute(CommandProcessorContext context, CancellationToken token, string[] args) | |
{ | |
if (args == null || args.Length == 0) | |
{ | |
context.Log.Error("No remoteConfig provided."); |
void Main() | |
{ | |
dynamic processor = null; | |
bool stopRequested; | |
while(!stopRequested) | |
{ |
public sealed class NonSerializingMemoryDocumentStore : IDocumentStore | |
{ | |
readonly ConcurrentDictionary<string,IStoreInfo> _store = new ConcurrentDictionary<string, IStoreInfo>(); | |
readonly IDocumentStrategy _strategy; | |
public interface IStoreInfo | |
{ | |
IEnumerable<DocumentRecord> Enumerate(); | |
} |
Development position in Moscow. Contact @abdullin. | |
Requirements: | |
* Higher engineering education; | |
* English language proficiency (reading technical documents, correspondence, speaking); | |
* Excellent knowledge of PHP/MySQL/Javascript (JQuery); | |
* Good knowledge of HTML/CSS; | |
* Basic knowledge of the Linux operation and administering; |