Ejemplo n.º 1
0
        public SimplifiedReturnResponse BulkRegistration(BulkRegistrationTransmissionType request)
        {
            var serviceBuilder = TransmittalEnvironment.CrateServiceBuilder();
            var serviceClient  = serviceBuilder.Build();
            var contentSent    = XmlHelper.Serialize(request);

            BulkRegistrationAcknowledgementType serviceResponse;

            try
            {
                serviceResponse = serviceClient.BulkRegistration(request);
            }
            catch (Exception ex)
            {
                var errors = new List <string> {
                    ex.Message
                };
                var response = new SimplifiedReturnResponse {
                    ContentSent = contentSent
                };
                foreach (var item in request.BulkRegistrationDocument)
                {
                    response.Errors.Add(new SstError(item.DocumentId, errors));
                }

                return(response);
            }

            var contentReceived    = XmlHelper.Serialize(serviceResponse);
            var simplifiedResponse = new SimplifiedReturnResponse(contentSent, contentReceived, serviceResponse);

            if (serviceResponse.TransmissionAcknowledgement.TransmissionStatus == StatusType.R)
            {
                simplifiedResponse.Errors.Add(new SstError(serviceResponse.TransmissionAcknowledgement.TransmissionId, serviceResponse.TransmissionAcknowledgement.Errors.Error.Select(x => x.ToString()).ToList()));
                return(simplifiedResponse);
            }

            foreach (var status in serviceResponse.BulkRegAcknowledgement.Where(x => x.DocumentStatus == StatusType.R))
            {
                var error = new SstError(status.DocumentId, status.Errors.Error.Select(x => x.ToString()));
                simplifiedResponse.Errors.Add(error);
            }

            return(simplifiedResponse);
        }
        private BulkRegistrationTransmissionType CreateRequest(ICollection <BulkRegistrationDocumentType> documents)
        {
            var header = new TransmissionHeaderType
            {
                TransmissionId = CreateUniqueId(),
                Transmitter    = new TransmissionHeaderTypeTransmitter
                {
                    ETIN = _transmitter.Contractor.CspCode
                },
                DocumentCount = documents.Count.ToString()
            };

            var request = new BulkRegistrationTransmissionType
            {
                BulkRegistrationDocument = documents.ToArray(),
                TransmissionHeader       = header,
                transmissionVersion      = _transmitter.TransmittalEnvironment.TransmissionVersion
            };

            return(request);
        }
        private void CreateTransmissionLog(BulkRegistrationTransmissionType request, SimplifiedReturnResponse response)
        {
            var status         = response.DefineTransmittalStatus(request.BulkRegistrationDocument);
            var transmittalLog = new TransmittalLog(_transmitter.TransmittalEnvironment, _userSubmitter, status, response.ContentSent, response.ContentReceived, request.TransmissionHeader.TransmissionId);

            foreach (var document in request.BulkRegistrationDocument)
            {
                var documentStatus          = response.DefineDocumentStatus(document.DocumentId);
                var documentAcknowledgement = response.GetDocumentAcknowledgementByDocumentId(document.DocumentId);
                var newLog = new TransmittalLogItem(document.DocumentId, documentStatus)
                {
                    SstpId = documentAcknowledgement?.SSTPID
                };

                if (documentAcknowledgement?.Errors != null)
                {
                    //Log the errors from the service response
                    var messages = new StringBuilder();
                    foreach (var error in documentAcknowledgement.Errors.Error)
                    {
                        messages.AppendLine(error.ToString());
                    }

                    newLog.Errors = messages.ToString();
                }
                else
                {
                    //Log the errors from local validations if we receive an invalid response
                    foreach (var sstError in response.Errors.Where(x => x.DocumentId.Equals(document.DocumentId)))
                    {
                        newLog.Errors += string.Join(", ", sstError.Messages);
                    }
                }

                transmittalLog.LogItems.Add(newLog);
            }

            _rootSstRegistrationTestHarnessSystem.AddTransmittalLog(transmittalLog, _genericRepository);
        }
Ejemplo n.º 4
0
        public void ShouldStartManagingRegistration()
        {
            // load these from a file or something.
            var clients   = LoadClients();
            var header    = GetHeader();
            var documents = MapDocuments(clients);

            header.DocumentCount = documents.Count.ToString();

            var bulkRegister = new BulkRegistrationTransmissionType()
            {
                BulkRegistrationDocument = documents.ToArray(),
                TransmissionHeader       = header,
                transmissionVersion      = "SST2015V01",
            };

            Console.WriteLine(SerializeObjectToXmlString(bulkRegister));

            try
            {
                var client = new ApiServiceClient();

                client.ClientCredentials.UserName.UserName = "******";
                client.ClientCredentials.UserName.Password = "******";

                var response = client.BulkRegistration(bulkRegister);

                Console.WriteLine(SerializeObjectToXmlString(response));
            }
            catch (FaultException ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.Code);
                Console.WriteLine(ex.Reason);
            }
        }
 public Task <BulkRegistrationAcknowledgementType> BulkRegistrationAsync(BulkRegistrationTransmissionType bulkRegistrationTransmission)
 {
     return(null);
 }
        public BulkRegistrationAcknowledgementType BulkRegistration(BulkRegistrationTransmissionType bulkRegistrationTransmission)
        {
            if (_setupParameters.ThrowEndpointNotFoundException)
            {
                throw new EndpointNotFoundException("Endpoint not found exception.");
            }

            var header = new AcknowledgementHeaderType
            {
                AcknowledgementTimestamp = DateTime.UtcNow,
                AcknowledgementCount     = bulkRegistrationTransmission.BulkRegistrationDocument.Length.ToString()
            };

            var transmissionAcknowledgement = new TransmissionAcknowledgementType
            {
                TransmissionStatus    = StatusType.A,
                TransmissionId        = bulkRegistrationTransmission.TransmissionHeader.TransmissionId,
                TransmissionTimestamp = DateTime.UtcNow
            };

            var bulkRegistrationAcknowledgement = new List <BulkRegAcknowledgementType>();

            foreach (var item in bulkRegistrationTransmission.BulkRegistrationDocument)
            {
                var registrationAcknowledgement = new BulkRegAcknowledgementType
                {
                    DocumentId   = item.DocumentId,
                    DocumentType = EnumHelper.GetEnumItemFromValueName <BulkRegAcknowledgementTypeDocumentType>(item.BulkRegistrationHeader.FilingType.ToString()),
                };

                if (item.ErrorMessages.Any())
                {
                    registrationAcknowledgement.DocumentStatus = StatusType.R;
                }
                else
                {
                    registrationAcknowledgement.SSTPID = item.DocumentType == BulkRegistrationDocumentTypeDocumentType.BulkRegistrationCOU
                        ? ((BulkRegistrationCOUType)item.Item).SSTPID
                        : Guid.NewGuid().ToString();
                }

                var errors = item.ErrorMessages.Select(errorMessage => new Error
                {
                    errorId                = Guid.NewGuid().ToString(),
                    ErrorMessage           = errorMessage,
                    AdditionalErrorMessage = errorMessage,
                    ItemElementName        = ItemChoiceType.XPath
                }).ToList();

                if (errors.Any())
                {
                    registrationAcknowledgement.Errors = new Errors
                    {
                        errorCount = errors.Count.ToString(),
                        Error      = errors.ToArray()
                    };
                }

                bulkRegistrationAcknowledgement.Add(registrationAcknowledgement);
            }

            return(new BulkRegistrationAcknowledgementType
            {
                AcknowledgementHeader = header,
                TransmissionAcknowledgement = transmissionAcknowledgement,
                BulkRegAcknowledgement = bulkRegistrationAcknowledgement.ToArray()
            });
        }