示例#1
0
        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);
        }
示例#2
0
        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
            });
        }