protected AggregateSaga() { _serviceProvider = Context.System.GetExtension <ServiceProviderHolder>().ServiceProvider; Settings = new AggregateSagaSettings(Context.System.Settings.Config); var idValue = Context.Self.Path.Name; PersistenceId = idValue; Id = (TIdentity)Activator.CreateInstance(typeof(TIdentity), idValue); if (Id == null) { throw new InvalidOperationException( $"Identity for Saga '{Id?.GetType().PrettyPrint()}' could not be activated."); } if ((this as TAggregateSaga) == null) { throw new InvalidOperationException( $"AggregateSaga {Name} specifies Type={typeof(TAggregateSaga).PrettyPrint()} as generic argument, it should be its own type."); } if (State == null) { try { State = (TSagaState)Activator.CreateInstance(typeof(TSagaState)); } catch (Exception exception) { Context.GetLogger().Error(exception, "AggregateSaga of Name={1}; was unable to activate SagaState of Type={0}.", Name, typeof(TSagaState).PrettyPrint()); } } if (Settings.AutoReceive) { InitAsyncReceives(); } if (Settings.UseDefaultEventRecover) { Recover <ICommittedEvent <TIdentity, IAggregateEvent <TIdentity> > >(Recover); Recover <RecoveryCompleted>(Recover); } if (Settings.UseDefaultSnapshotRecover) { Recover <SnapshotOffer>(Recover); } Command <SaveSnapshotSuccess>(SnapshotStatus); Command <SaveSnapshotFailure>(SnapshotStatus); var appDefe = _serviceProvider.GetRequiredService <IApplicationDefinition>(); _eventDefinitionService = appDefe.Events; _snapshotDefinitionService = appDefe.Snapshots; }
public void LoadEvents(IEventDefinitions eventDefinitions) { eventDefinitions.LoadInto(this); }
public AggregateEventTagger(IEventDefinitions eventDefinitions) { _eventDefinitions = eventDefinitions; }