2016-07-04 31 views
7

Tôi muốn đăng nhập vào cơ sở dữ liệu về các chuyển đổi trạng thái của luồng công việc của mình.Cách đăng nhập trạng thái chuyển tiếp trong Stateless (Thư viện máy trạng thái .NET)

Đâu là nơi tốt nhất để kích hoạt ghi nhật ký với Stateless? Nếu nó được thiết lập cho mỗi cấu hình Nhà nước:

phoneCall.Configure(State.Connected) 
    .OnEntry(() => StartCallTimer()) 
    .OnEntry(() => Log()); 

hoặc có cách nào đó để xác định nó tập trung cho toàn bộ quy trình làm việc một lần?

Bất kỳ đầu vào nào khác trong vấn đề này đều được chào đón.

Trả lời

10

Bạn có thể sử dụng kích hoạt OnTransitioned sẽ được kích hoạt trên mọi chuyển đổi làm cơ sở ghi nhật ký trung tâm.

_stateMachine.OnTransitioned(OnTransitionedAction); 

void OnTransitionedAction(StateMachine<StateEnum, TriggerEnum>.Transition transition) { 
    TriggerEnum trigger = transition.Trigger; 
    StateEnum source = transition.Source; 
    StateEnum dest = transition.Destination; 
    // log trigger, source, destination 
} 
+0

Tôi không thấy điều này lúc đầu vì đó không phải là sự kiện được nâng lên. – granadaCoder

Các vấn đề liên quan