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
| 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; |
| public sealed class NonSerializingMemoryDocumentStore : IDocumentStore | |
| { | |
| readonly ConcurrentDictionary<string,IStoreInfo> _store = new ConcurrentDictionary<string, IStoreInfo>(); | |
| readonly IDocumentStrategy _strategy; | |
| public interface IStoreInfo | |
| { | |
| IEnumerable<DocumentRecord> Enumerate(); | |
| } |
| void Main() | |
| { | |
| dynamic processor = null; | |
| bool stopRequested; | |
| while(!stopRequested) | |
| { |
| 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."); |
Topic Context
| // 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() |
| // 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] |
| // 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()); |
| /// <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; |
| /// <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] |