ReactiveXComponent.Net is a .Net client API that allows you to interact with microservices generated with XComponent software.
Use Nuget to install the latest version of the API:
 nuget install ReactiveXComponent.Net -Pre
Usage example of ReactiveXComponent.Net API
// All the info we need is in the xcApi file. Get a XComponentApi..
IXComponentApi xcApi = XComponentApi.CreateFromXCApi(@".\HelloWorld.xcApi");
// Create a session..
using (IXCSession xcSession = xcApi.CreateSession())
{
    var componentName = "HelloWorld";
    var helloWorldManagerStateMachineName = "HelloWorldManager";
    var helloWorldResponseStateMachineCode = 1837059171;
    // Create a subscriber..
    var subscriber = xcSession.CreateSubscriber(componentName);
    // Create a publisher..
    var publisher = xcSession.CreatePublisher(componentName);
    // Need to call subscribe for the state machine we are interested in..
    subscriber.Subscribe(helloWorldManagerStateMachineName, arg => {});
    // Subscribe to state machine updates via the IObservable collection..
    var eventReceived = new ManualResetEvent(false);
    var observer = Observer.Create<MessageEventArgs>(args =>
    {
        Console.WriteLine(args.MessageReceived);
        eventReceived.Set();
    });
    var subscription = subscriber.StateMachineUpdatesStream
                                .Where(e => e.StateMachineRefHeader.StateMachineCode == helloWorldResponseStateMachineCode)
                                .Subscribe(observer);
    // Send an event to a state machine..
    var sayHiEvent = new SayHi() { To = "World" };
    publisher.SendEvent(helloWorldManagerStateMachineName, sayHiEvent);
    // Wait for state machine update and dispose subscription..
    eventReceived.WaitOne(5000);
    subscription.Dispose();
}Download the source code and execute the following command in a PowerShell:
.\build.ps1 -Target All
That would build the source code run the tests and create a Nuget package under the nuget folder.
The complete command that contains all the possible parameters is as follows:
.\build.ps1 -Target <Target> --buildConfiguration=<build_config> --buildVersion=<build_version> --setAssemblyVersion=<true_or_false>
target can be one of these values:
Clean
RestoreNugetPackages
Build
Test
CreatePackage
All
Default value: Build
buildConfiguration can be either Debug or Release.
Default value: Release
buildVersion is the build version to set for the assembly or Nuget package.
Default value: 1.0.0-build1
setAssemblyVersion can be either True or False. When set to true the assembly version will be set to the value indicated by buildVersion.
Default value: False
- Fork it!
- Create your feature branch: git checkout -b my-new-feature
- Commit your changes: git commit -am 'Add some feature'
- Push to the branch: git push -u origin my-new-feature
- Submit a pull request
Apache License V2
