private EFilingRequest()
 {
     _externalServicesHandler = new EFilingExternalServicesInteractor(this);
     _documentationHandler    = new DocumentationHandler(this);
     _statusHandler           = new RequestStatusHandler(this, _externalServicesHandler);
     _paymentOrderHandler     = new PaymentOrderHandler(this, _externalServicesHandler);
     _requestSigner           = new RequestSigner(this, _statusHandler);
 }
        internal async Task Synchronize(EFilingExternalServicesInteractor handler)
        {
            var paymentOrderDTO = await handler.TryGetPaymentOrder();

            if (paymentOrderDTO != null)
            {
                this.LoadFromDTO(paymentOrderDTO);
            }
        }
        internal RequestStatusHandler(EFilingRequest request,
                                      EFilingExternalServicesInteractor externalServices)
        {
            Assertion.AssertObject(request, "request");
            Assertion.AssertObject(externalServices, "externalServices");

            _request          = request;
            _externalServices = externalServices;
        }
Beispiel #4
0
        private async Task ChangeTransactionStatus(string filingRequestUID, string eventName)
        {
            var filingRequest = EFilingRequest.TryParse(filingRequestUID);

            Assertion.AssertObject(filingRequest, $"Invalid filing request with UID {filingRequestUID}.");

            var interactor = new EFilingExternalServicesInteractor(filingRequest);

            interactor.InformEventProcessed(filingRequest.Transaction.UID, eventName);

            RequestStatus newStatus = GetNewStatusAfterEvent(eventName);

            await filingRequest.UpdateStatus(newStatus);

            filingRequest.Save();
        }
Beispiel #5
0
        internal async Task Synchronize(EFilingExternalServicesInteractor servicesHandler)
        {
            IFilingTransaction updatedData;

            if (servicesHandler.FilingRequest.Status == RequestStatus.OnPayment)
            {
                updatedData = await servicesHandler.UpdateExternalTransaction();
            }
            else
            {
                updatedData = await servicesHandler.GetTransaction();
            }

            this.Update(updatedData);

            var documents = await servicesHandler.GetOutputDocuments();

            this.OutputDocuments = documents;
        }