public MunicipalityCommandHandlerModule( Func <IMunicipalities> getMunicipalities, Func <ConcurrentUnitOfWork> getUnitOfWork, Func <IStreamStore> getStreamStore, EventMapping eventMapping, EventSerializer eventSerializer, StreetNameProvenanceFactory provenanceFactory) { For <ImportMunicipality>() .AddSqlStreamStore(getStreamStore, getUnitOfWork, eventMapping, eventSerializer) .AddProvenance(getUnitOfWork, provenanceFactory) .Handle(async(message, ct) => { var municipality = await getMunicipalities().GetOptionalAsync(message.Command.MunicipalityId, ct); if (municipality.HasValue) { throw new AggregateSourceException($"Municipality with id {message.Command.MunicipalityId} already exists"); } var newMunicipality = Municipality.Register(message.Command.MunicipalityId, message.Command.NisCode); getMunicipalities().Add(newMunicipality.MunicipalityId, newMunicipality); }); For <ChangeMunicipalityNisCode>() .AddSqlStreamStore(getStreamStore, getUnitOfWork, eventMapping, eventSerializer) .AddProvenance(getUnitOfWork, provenanceFactory) .Handle(async(message, ct) => { var municipality = await getMunicipalities().GetAsync(message.Command.MunicipalityId, ct); municipality.ChangeNisCode(message.Command.NisCode); }); For <SetMunicipalityToCurrent>() .AddSqlStreamStore(getStreamStore, getUnitOfWork, eventMapping, eventSerializer) .AddProvenance(getUnitOfWork, provenanceFactory) .Handle(async(message, ct) => { var municipality = await getMunicipalities().GetAsync(message.Command.MunicipalityId, ct); municipality.BecomeCurrent(); }); For <RetireMunicipality>() .AddSqlStreamStore(getStreamStore, getUnitOfWork, eventMapping, eventSerializer) .AddProvenance(getUnitOfWork, provenanceFactory) .Handle(async(message, ct) => { var municipality = await getMunicipalities().GetAsync(message.Command.MunicipalityId, ct); municipality.Retire(); }); }
public StreetNameCommandHandlerModule( Func <IMunicipalities> getMunicipalities, Func <ConcurrentUnitOfWork> getUnitOfWork, Func <IStreamStore> getStreamStore, EventMapping eventMapping, EventSerializer eventSerializer, StreetNameProvenanceFactory provenanceFactory) { For <ProposeStreetName>() .AddSqlStreamStore(getStreamStore, getUnitOfWork, eventMapping, eventSerializer) .AddProvenance(getUnitOfWork, provenanceFactory) .Handle(async(message, ct) => { var municipality = await getMunicipalities().GetAsync(message.Command.MunicipalityId, ct); municipality.ProposeStreetName(message.Command.StreetNameNames, message.Command.PersistentLocalId); }); }
public StreetNameCommandHandlerModule( Func <IStreetNames> getStreetNames, Func <ConcurrentUnitOfWork> getUnitOfWork, Func <IStreamStore> getStreamStore, EventMapping eventMapping, EventSerializer eventSerializer, StreetNameProvenanceFactory provenanceFactory) { For <ImportStreetNameFromCrab>() .AddSqlStreamStore(getStreamStore, getUnitOfWork, eventMapping, eventSerializer) .AddProvenance(getUnitOfWork, provenanceFactory) .Handle(async(message, ct) => { await ImportStreetNameFromCrab(getStreetNames, message, ct); }); For <ImportStreetNameStatusFromCrab>() .AddSqlStreamStore(getStreamStore, getUnitOfWork, eventMapping, eventSerializer) .AddProvenance(getUnitOfWork, provenanceFactory) .Handle(async(message, ct) => { await ImportStreetNameStatusFromCrab(getStreetNames, message, ct); }); }