Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
41 lines (29 sloc) 1.18 KB

Getting Started with Automatonymous

Once you have added Automatonymous to your project (using NuGet or otherwise), you're ready to create your first state machine.

Creating Your First State Machine

A state machine is declared with Automatonymous using an internal domain specific language (DSL). To declare a state machine, add a class to your project that inherits from AutomatonymousStateMachine. For our example, we'll use the concept of a vehicle pit stop on the road of life.

public class PitStop :
  AutomatonymousStateMachine<VehicleState>
{
  public PitStop()
  {
    State(() => Running);
    Event(() => Start);

    Initially(
      When(Arrived)
        .TransitionTo(Waiting));
  }

  public Event<Vehicle> Arrived {get; private set;}

  public State Waiting {get; private set;}
}

So far, only a minimum level of functionality has been declared. When a vehicle arrives, the PitStop is in an initial state. When the Arrived event is raised, the vehicle information is passed to the handler, which transitions to the Waiting state.

.. toctree::

    quickstart.rst
You can’t perform that action at this time.