public void SerializeQueryBulkImportRequest() { IXmlParser xmlParser = new DefaultXmlParser(); var request = new SubscriberBulkQueryRequest { ApiKey = "44-121312131223", ImportId = 213213 }; var requestXml = xmlParser.Serialize(request); var xml = File.ReadAllText("QueryBulkImportRequest.xml"); Assert.AreEqual(xml, requestXml); }
public SubscriberBulkImportResult QueryBulkImport(int importId) { var url = $"{this._baseUrl}/subscribers/bulkQuery/"; var request = new SubscriberBulkQueryRequest { ApiKey = this._apiKey, ImportId = importId }; var xmlRequest = this._parser.Serialize(request); var httpResponse = this._httpClient.Request(url, xmlRequest); if (httpResponse.Status != HttpStatus.Successful) { return(new SubscriberBulkImportResult { Status = Status.Error, Message = "Http error" }); } var internalResult = this._parser.Deserialize <SubscriberInternalBulkImportResult>(httpResponse.Result); var separator = new string[] { "//" }; var duplicateEmailAddresses = internalResult.Job.DuplicateEmailAddresses.Split(separator, StringSplitOptions.None).ToList(); var invalidEmailAddresses = internalResult.Job.InvalidEmailAddresses.Split(separator, StringSplitOptions.None).ToList(); var previouslyUnsubscribedEmailAddresses = internalResult.Job.PreviouslyUnsubscribedEmailAddresses.Split(separator, StringSplitOptions.None).ToList(); return(new SubscriberBulkImportResult { Status = internalResult.Status, Job = new Job { DetectedSubscribersCount = internalResult.Job.DetectedSubscribersCount, DuplicateEmailAddressesCount = internalResult.Job.DuplicateEmailAddressesCount, ProcessedSubscribersCount = internalResult.Job.ProcessedSubscribersCount, PreviouslyUnsubscribedEmailAddressesCount = internalResult.Job.PreviouslyUnsubscribedEmailAddressesCount, Status = internalResult.Job.Status, InvalidEmailAddresssesCount = internalResult.Job.InvalidEmailAddressesCount, DuplicateEmailAddresses = duplicateEmailAddresses, InvalidEmailAddresses = invalidEmailAddresses, PreviouslyUnsubscribedEmailAddresses = previouslyUnsubscribedEmailAddresses }, Message = internalResult.Message }); }