public SubscriberBulkAddResult BulkAddSubscribers(int groupId, List <Subscriber> subscribers) { var csv = new StringBuilder(); var firstLine = "\"email\",\"firstname\",\"lastName\",\"companyName\",\"houseNo\",\"address1\",\"address2\",\"town\",\"county\",\"country\",\"postCode\",\"dateOfBirth\",\"gender\",\"customField1\",\"customField2\",\"customField3\",\"customField4\",\"customField5\",\"customField6\",\"customField7\",\"customField8\",\"customField9\",\"customField10\""; csv.Append(firstLine); var csvSubscribersBase64Encoded = string.Empty; foreach (var subscriber in subscribers) { csv.Append("\r\n"); var subscriberToString = subscriber.ToString(); csv.Append(subscriberToString); } var bytes = Utf8Encode(csv.ToString()); if (bytes.Length > 22499919) // max bytes: 22.499.919 { return(new SubscriberBulkAddResult { Status = Status.Error, Message = "Too many subscribers" }); } csvSubscribersBase64Encoded = Base64Encode(bytes); var url = $"{this._baseUrl}/subscribers/bulkSubscribers/"; var request = new SubscriberBulkAddRequest { ApiKey = this._apiKey, GroupId = groupId, CsvSubscribersBase65Encoded = csvSubscribersBase64Encoded }; var xmlRequest = this._parser.Serialize(request); var httpResponse = this._httpClient.Request(url, xmlRequest); if (httpResponse.Status != HttpStatus.Successful) { return(new SubscriberBulkAddResult { Status = Status.Error, Message = "Http error" }); } var bulkAddResult = this._parser.Deserialize <SubscriberBulkAddResult>(httpResponse.Result); return(bulkAddResult); }
public void SerializeBulkAddSubscribersRequest() { IXmlParser xmlParser = new DefaultXmlParser(); var request = new SubscriberBulkAddRequest { ApiKey = "44-121312131223", GroupId = 213213, CsvSubscribersBase65Encoded = "ZW1haWwsZmlyc3RuYW1lLGxhc3ROYW1lLGNvbXBhbnlOYW1lLGhvdXNlTm8sYWRkcmVzczEsYWRkcmVzczIsdG93bixjb 3VudHksY291bnRyeSxwb3N0Q29kZSxkYXRlT2ZCaXJ0aCxnZW5kZXIsY3VzdG9tRmllbGQxLGN1c3RvbUZpZWxkMixjdX N0b21GaWVsZDMsY3VzdG9tRmllbGQ0LGN1c3RvbUZpZWxkNSxjdXN0b21GaWVsZDYsY3VzdG9tRmllbGQ3LGN1c3RvbUZ pZWxkOCxjdXN0b21GaWVsZDksY3VzdG9tRmllbGQxMA==" }; var requestXml = xmlParser.Serialize(request); var xml = File.ReadAllText("BulkAddSubscribersRequest.xml"); Assert.AreEqual(xml, requestXml); }