private async Task Seed(string energySupplierGlnNumber, string meteringPointGsrnNumber)
        {
            //TODO: Need to separate customers from energy suppliers - This does not make any sense at all
            var customerId = "Unknown";
            var customer   = new EnergySupplier(new GlnNumber(customerId));

            _energySupplierRepository.Add(customer);

            var energySupplierGln = new GlnNumber(energySupplierGlnNumber);
            var energySupplier    = new EnergySupplier(energySupplierGln);

            _energySupplierRepository.Add(energySupplier);

            await _unitOfWorkCallback.CommitAsync().ConfigureAwait(false);

            var meteringPoint =
                MeteringPoint.CreateProduction(
                    GsrnNumber.Create(meteringPointGsrnNumber), true);

            var systemTimeProvider = _serviceProvider.GetRequiredService <ISystemDateTimeProvider>();

            meteringPoint.RegisterMoveIn(new MarketParticipantMrid(customerId), new MarketParticipantMrid(energySupplierGlnNumber), systemTimeProvider.Now().Minus(Duration.FromDays(365)));
            meteringPoint.ActivateMoveIn(new MarketParticipantMrid(customerId), new MarketParticipantMrid(energySupplierGlnNumber));
            _meteringPointRepository.Add(meteringPoint);
            await _unitOfWorkCallback.CommitAsync().ConfigureAwait(false);
        }
        public void Add(EnergySupplier energySupplier)
        {
            if (energySupplier is null)
            {
                throw new ArgumentNullException(nameof(energySupplier));
            }

            var snapshot  = energySupplier.GetSnapshot();
            var dataModel = GetDataModelFrom(snapshot);

            _unitOfWorkCallback.RegisterNew(dataModel, this);
        }