public IEnumerable <getSubscribersReply> GetMailrelaySubscribers(getSubscribers getSubscribersFunction, int subscribersPerPage) { getSubscribersFunction.sortField = "id"; getSubscribersFunction.sortOrder = "ASC"; bool allDone = false; int currentPage = 0; Queue <getSubscribersReply> replyBuffer = new Queue <getSubscribersReply>(); while (allDone == false) { getSubscribersFunction.offset = subscribersPerPage * currentPage; getSubscribersFunction.count = subscribersPerPage; MailrelayArrayReply <getSubscribersReply> reply = (MailrelayArrayReply <getSubscribersReply>)_mailrelayConnection.Send(getSubscribersFunction); if (reply.data.Count < subscribersPerPage) { allDone = true; } reply.data.ForEach(replyBuffer.Enqueue); while (replyBuffer.Any()) { yield return(replyBuffer.Dequeue()); } currentPage++; } }
private UpdateReport <int> AddOrRemoveMembersFromMailrelayGroup(DynamicsCrmConnection dynamicsCrmConnection, MarketingList marketingList, int groupId) { List <KeyValueEntity <Guid, int?> > crmIdsAndSubscriberIds = marketingList.CrmIdsAndSubscriberIds; List <getSubscribersReply> subscribersToRemoveFromMailrelay = new List <getSubscribersReply>(); Subscriber subscriber = new Subscriber(_mailrelayConnection); getSubscribers getSubscribersFunction = new getSubscribers() { groups = new List <int>() { groupId }, }; IEnumerable <getSubscribersReply> subscribersInMailrelay = subscriber.GetMailrelaySubscribers(getSubscribersFunction, 100); foreach (getSubscribersReply currentInMailrelay in subscribersInMailrelay) { int removed = crmIdsAndSubscriberIds.RemoveAll(idInCrm => currentInMailrelay.id == idInCrm.value.ToString()); if (removed == 0) { subscribersToRemoveFromMailrelay.Add(currentInMailrelay); } } UpdateReport <int> report = new UpdateReport <int>(); RemoveFromMailrelayGroup(report, subscribersToRemoveFromMailrelay, subscriber, groupId); AddToMailrelayGroup(dynamicsCrmConnection, report, subscriber, crmIdsAndSubscriberIds, groupId); return(report); }
public void SubscribersEnumerationReturnSubscribers() { Dictionary <string, string> customFields = new Dictionary <string, string>(); List <string> groups12 = new List <string>() { "1", "2" }; EnqueueSubscribersReply(customFields, groups12, 2); EnqueueSubscribersReply(customFields, groups12, 2); EnqueueSubscribersReply(customFields, groups12, 2); EnqueueSubscribersReply(customFields, groups12, 1); Subscriber subscriber = new Subscriber(_mailrelayConnectionTester); getSubscribers getSubscribersFunction = new getSubscribers(); IEnumerable <getSubscribersReply> replies = subscriber.GetMailrelaySubscribers(getSubscribersFunction, 2); Assert.AreEqual(0, _mailrelayConnectionTester.sendFunctions.Count); replies.ToList(); Assert.AreEqual(4, _mailrelayConnectionTester.sendFunctions.Count); Console.Out.WriteLine(_mailrelayConnectionTester); }
public void getSubscribers() { getSubscribers function = new getSubscribers() { }; AbstractMailrelayReply reply = TestCall(function); Assert.AreEqual(1, reply.status); }
public void functionWithEmptyArrayCanBeUrlEncoded() { string expectedUrlEncoded = $"&function=getSubscribers"; getSubscribers function = new getSubscribers() { }; AssertToGet(function, expectedUrlEncoded); }
public getSubscribersReply GetMailrelaySubscribers(string email) { getSubscribers getSubscribers = new getSubscribers() { email = email, }; MailrelayArrayReply <getSubscribersReply> reply = (MailrelayArrayReply <getSubscribersReply>)_mailrelayConnection.Send(getSubscribers); return(reply.data.FirstOrDefault(subscriber => subscriber.email == email)); }
private getSubscribersReply GetMailrelaySubscribers(int id) { getSubscribers getSubscribers = new getSubscribers() { id = id, }; MailrelayArrayReply <getSubscribersReply> reply = (MailrelayArrayReply <getSubscribersReply>)_mailrelayConnection.Send(getSubscribers); return(reply.data.FirstOrDefault()); }
private getSubscribersReply GetExistingSubscribers(string email) { getSubscribers getSubscribers = new getSubscribers() { email = email, deleted = false, }; MailrelayArrayReply <getSubscribersReply> reply = (MailrelayArrayReply <getSubscribersReply>)_mailrelayConnection.Send(getSubscribers); return(reply.data.Where(data => data.email == email).SingleOrDefault()); }
public void functionWithSingleElementArrayCanBeUrlEncoded() { string expectedUrlEncoded = $"&function=getSubscribers&groups%5b0%5d=1"; getSubscribers function = new getSubscribers() { groups = new List <int>() { 1 }, }; AssertToGet(function, expectedUrlEncoded); }