Przejdź do treści

Do czego służą identyfikatory?

Identyfikatory służą do identyfikacji komunikatów (komendy, zdarzenia). Umożliwiają one wyszukiwanie i filtrowanie komunikatów w obrębie jednego identyfikatora.

Ustawienie identyfikatora

public void SendCommand() 
{
  var command = new ExampleCommand();
  command.SetIdentifier("NAGZAM123");
}
Identyfikator ustawiany jest za pomocą metody SetIdentifier(), która jest wywoływana na komendzie.

Pobieranie identyfikatora

Wartość ustawionego identyfikatora można pobrać wewnątrz handlera.

public HandlerResult ExampleCommandHandler(ConsumeContext<IDENTYFIKATORY.ExampleCommand> context)
{
  string id = context.Message.GetIdentifier();
  return HandlerResult.Handled;
}
Identyfikator pobierany jest za pomocą metody GetIdentifier() wywoływanej na komunikacie w kontekście.

Wyszukiwanie po identyfikatorze w monitorze EDA

Do filtrowania i wyszukiwania komunikatów po identyfikatorze służy pole Identyfikator znajdujące się w monitorze EDA.

W rezultacie zostaną wyświetlone tylko komunikaty posiadające ten identyfikator.

Zaawansowane

Przekazywanie kontekstu

W przypadku gdy kontekst zostanie przekazany do metody RaiseEvent() komunikat ExampleEvent automatycznie otrzyma ten sam identyfikator co komunikat ExampleCommand, który jest aktualnie przetwarzany w metodzie ExampleCommandHandler.

public HandlerResult ExampleCommandHandler(ConsumeContext<IDENTYFIKATORY.ExampleCommand> context)
{
  var exampleEvent = new ExampleEvent();
  EDA.RaiseEvent(exampleEvent, context);
  return HandlerResult.Handled;
}
Jeśli chcemy zmodyfikować istniejący już identyfikator, to możemy to zrobić w dowolnym momencie. Przykład gdy na zdarzeniu zostanie ustawiony inny indentyfikator niż na komendzie.
public void RaiseEvent()
{
  var event = new ExampleEvent();
  exampleEvent.SetIdentifier("XYZ");
}
Jak widać inny identyfikator jest ustawiony dla komendy i inny dla zdarzenia.