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); }
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() }); }