public async Task Consume(ConsumeContext <SendPaymentNotification> context)
        {
            var message = await _domainService.CreatePaymentNotification(context.Message.PaymentId);

            await _asyncUnitOfWork.CommitAsync();

            await context.Publish <INotification>(message);
        }
Ejemplo n.º 2
0
        public async Task Consume(ConsumeContext <MeterReadProcessBagan> context)
        {
            var meterRead =
                _meterReadFactory.Create(new MeterReadFactoryInput(context.Message.MeterReadId,
                                                                   context.Message.AddressId, context.Message.MeterIds, context.Message.ReadProcessStartDate));

            _meterReadRepository.Add(meterRead);
            await _asyncUnitOfWork.CommitAsync();
        }
Ejemplo n.º 3
0
        public async Task Consume(ConsumeContext <MeterMountedAtAddress> context)
        {
            var address = await _addressRepository.Get(context.Message.AddressId);

            address.AssignMeter(context.Message.MeterId);

            _addressRepository.Update(address);

            await _asyncUnitOfWork.CommitAsync();
        }
Ejemplo n.º 4
0
        public async Task Consume(ConsumeContext <MeterReadCompleted> context)
        {
            var address = await _meterReadRepository.Get(context.Message.AddressId);

            address.FinishMeterReadProcess(context.Message.MeterReadId);

            _meterReadRepository.Update(address);

            await _asyncUnitOfWork.CommitAsync();
        }
Ejemplo n.º 5
0
        public async Task Consume(ConsumeContext <FinishMeterReadProcess> context)
        {
            var meterRead = await _meterReadRepository.Get(context.Message.MeterReadId);

            meterRead.CompleteMeterRead();

            _meterReadRepository.Update(meterRead);

            await _asyncUnitOfWork.CommitAsync();
        }
        public async Task Consume(ConsumeContext <MarkPaymentNotificationAsSent> context)
        {
            var entity = await _paymentRepository.Get(context.Message.PaymentId);

            entity.MarkAsSent();

            _paymentRepository.Update(entity);

            await _asyncUnitOfWork.CommitAsync();
        }
        public async Task Consume(ConsumeContext <IAddressAdded> context)
        {
            var address =
                _factory.Create(new AddressFactoryInput()
            {
                AddressId    = context.Message.Id,
                SquareMeters = context.Message.SquareMeters
            });

            _repository.Add(address);

            await _asyncUnitOfWork.CommitAsync();
        }
        public async Task Consume(ConsumeContext <IRegistratorAdded> context)
        {
            var registrator =
                _factory.Create(new FactoryInput()
            {
                AddressId     = context.Message.AddressId,
                Description   = context.Message.Description,
                RegistratorId = context.Message.RegistratorId
            });

            _repository.Add(registrator);

            await _asyncUnitOfWork.CommitAsync();
        }
        public async Task Consume(ConsumeContext <IPaymentAccepted> context)
        {
            var address = await _addressRepository.Get(context.Message.AddressId);

            if (address == null)
            {
                throw new AddressCannotBeEmptyException(context.Message.AddressId.ToString());
            }

            address.RegisterAcceptedPayment(context.Message.PaymentId);

            _addressRepository.Update(address);

            await _asyncUnitOfWork.CommitAsync();
        }
        public async Task Consume(ConsumeContext <CreatePaymentNotification> context)
        {
            var paymentDetails = await _serviceClient.GetPayment(context.Message.PaymentId);

            var address = await _billsServiceClient.GetAddressDetails(paymentDetails.AddressId);

            var payment = Payment.Create(context.Message.PaymentId, address.AddressId,
                                         paymentDetails.PaymentItems.Select(Convert).ToList(),
                                         $"{address.Street} {address.StreetNumber}/{address.HomeNumber}, {address.City}");

            _paymentRepository.Add(payment);

            await _unitOfWork.CommitAsync();

            await context.Publish <IPaymentCreated>(new { context.Message.PaymentId });
        }
        public async Task Invoke(HttpContext context, IAsyncUnitOfWork unitOfWork)
        {
            await _next.Invoke(context);

            await unitOfWork.CommitAsync();
        }
Ejemplo n.º 12
0
        public async Task Consume(ConsumeContext <CreateUsageCalculation> context)
        {
            await _usageDomainService.CalculateUsage(context.Message.MeterReadId, context.Message.AddressId, context.Message.MeterState, context.Message.MeterId, context.Message.UsageId);

            await _asyncUnitOfWork.CommitAsync();
        }
        public async Task Consume(ConsumeContext <IMeterReadProcessCanceled> context)
        {
            _meterReadRepository.Delete(context.Message.MeterReadId);

            await _asyncUnitOfWork.CommitAsync();
        }