/// <remarks/>
 public void listAsync(ListRequest list1, object userState)
 {
     if ((this.listOperationCompleted == null))
     {
         this.listOperationCompleted = new System.Threading.SendOrPostCallback(this.OnlistOperationCompleted);
     }
     this.InvokeAsync("list", new object[] {
                 list1}, this.listOperationCompleted, userState);
 }
 /// <remarks/>
 public System.IAsyncResult Beginlist(ListRequest list1, System.AsyncCallback callback, object asyncState)
 {
     return this.BeginInvoke("list", new object[] {
                 list1}, callback, asyncState);
 }
 /// <remarks/>
 public void listAsync(ListRequest list1)
 {
     this.listAsync(list1, null);
 }
        public void ListMailings()
        {
            var config = StrongMailConfigurationSection.Instance;
            using (var studio = config.CreateMailingService())
            {
                try
                {
                    var orgs = studio.AllOrganizations();
                    Assert.IsNotNull(orgs);
                    Assert.IsTrue(orgs.Count() > 0);

                    var parent = orgs.SingleOrDefault(o => o.name == "ATTI");
                    Assert.IsNotNull(parent);

                    RecursiveForEach(studio, 0, parent, orgs, (s, i, o) =>
                    {
                        string indent = (i > 0) ? new String('\t', i) : String.Empty;
                        Console.WriteLine(String.Concat(i, o.name, " { id=", o.objectId.id, ", parentid=", (o.parentId != null) ? o.parentId.id : "null", ", description='", o.description, "' }"));

                        // Change the security context to the environment...
                        s.ChangeOrganization(o.name, o.objectId.id);

                        var mailingReq = new ListRequest();
                        var mailingFilter = new MailingFilter();

                        //mailingFilter.typeCondition = new ArrayStringFilterCondition();
                        //mailingFilter.typeCondition.@operator = FilterArrayOperator.IN;
                        //mailingFilter.typeCondition.value = new string[] { MailingType.RECURRING.ToString(), MailingType.TRANSACTIONAL.ToString() };

                        //mailingFilter.orderBy = new MailingOrderBy[] { MailingOrderBy.NAME };
                        //mailingFilter.statusCondition = new ArrayStringFilterCondition();
                        //mailingFilter.statusCondition.@operator = FilterArrayOperator.IN;
                        //mailingFilter.statusCondition.value = new string[] { MailingStatus.ACTIVE.ToString() };

                        mailingReq.filter = mailingFilter;

                        var mlist = studio.list(mailingReq);
                        var mailings = studio.GetObjectsAs<Mailing>(mlist.objectId);
                        foreach (var m in mailings)
                        {
                            Assert.AreEqual(o.objectId.id, m.organizationId.id);

                            Console.WriteLine(String.Concat("\t\tMailing: ", m.name, " { id = ", m.objectId.id,
                                ", orgId = ", (m.organizationId != null) ? m.organizationId.id : "",
                                ", parentId = ", (m.parentId != null) ? m.parentId.id : "",
                                " }"));
                        }
                    });
                }
                catch (SoapHeaderException e)
                {
                    throw studio.TranslateException(e);
                }
            }
        }