public ActorMessagePublisher(IDbConnectionFactory connectionFactory, ISystemDateTimeProvider systemDateTimeProvider, IUnitOfWorkCallback unitOfWorkCallback, IJsonSerializer jsonSerializer) { _connectionFactory = connectionFactory ?? throw new ArgumentNullException(nameof(connectionFactory)); _systemDateTimeProvider = systemDateTimeProvider ?? throw new ArgumentNullException(nameof(systemDateTimeProvider)); _unitOfWorkCallback = unitOfWorkCallback ?? throw new ArgumentNullException(nameof(unitOfWorkCallback)); _jsonSerializer = jsonSerializer; }
public RequestChangeSupplierCommandHandler( IRuleEngine <RequestChangeOfSupplier> ruleEngine, IMeteringPointRepository meteringPointRepository, ISystemDateTimeProvider systemTimeProvider, IEnergySupplierRepository energySupplierRepository) { _ruleEngine = ruleEngine ?? throw new ArgumentNullException(nameof(ruleEngine)); _meteringPointRepository = meteringPointRepository ?? throw new ArgumentNullException(nameof(meteringPointRepository)); _systemTimeProvider = systemTimeProvider ?? throw new ArgumentNullException(nameof(systemTimeProvider)); _energySupplierRepository = energySupplierRepository ?? throw new ArgumentNullException(nameof(energySupplierRepository)); }
public Greeter(ISystemDateTimeProvider systemDateTimeProvider = null) { _systemDateProvider = systemDateTimeProvider; }
public BusinessRulesValidationResult CanChangeSupplier(MarketParticipantMrid energySupplierMrid, Instant effectuationDate, ISystemDateTimeProvider systemDateTimeProvider) { if (energySupplierMrid is null) { throw new ArgumentNullException(nameof(energySupplierMrid)); } if (systemDateTimeProvider == null) { throw new ArgumentNullException(nameof(systemDateTimeProvider)); } var rules = new List <IBusinessRule>() { new MeteringPointMustBeEnergySuppliableRule(_meteringPointType), new ProductionMeteringPointMustBeObligatedRule(_meteringPointType, _isProductionObligated), new CannotBeInStateOfClosedDownRule(_physicalState), new MustHaveEnergySupplierAssociatedRule(_relationships.AsReadOnly()), new ChangeOfSupplierRegisteredOnSameDateIsNotAllowedRule(_relationships.AsReadOnly(), effectuationDate), new MoveInRegisteredOnSameDateIsNotAllowedRule(_relationships.AsReadOnly(), effectuationDate), new MoveOutRegisteredOnSameDateIsNotAllowedRule(_relationships.AsReadOnly(), effectuationDate), new EffectuationDateCannotBeInThePastRule(effectuationDate, systemDateTimeProvider.Now()), }; return(new BusinessRulesValidationResult(rules)); }
public void RegisterChangeOfEnergySupplier(MarketParticipantMrid energySupplierMrid, Instant effectuationDate, ISystemDateTimeProvider systemDateTimeProvider) { if (!CanChangeSupplier(energySupplierMrid, effectuationDate, systemDateTimeProvider).Success) { throw new InvalidOperationException(); } _relationships.Add(new Relationship(energySupplierMrid, RelationshipType.EnergySupplier, effectuationDate)); //TODO: Refactor along with new Comsumer/Supplier concepts AddDomainEvent(new EnergySupplierChangeRegistered(GsrnNumber, new ProcessId("TODO"), effectuationDate)); }