public MailingService CreateMailingService()
        {
            if (String.IsNullOrEmpty(this.MessageStudioApiUrl))
                throw new ConfigurationErrorsException("The MessageStudio API URL is not present in the configuration file");

            ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback((o, cert, chain, sslerr) =>
                {
                    return true;
                });

            var svc = new MailingService(this.MessageStudioApiUrl);
            UsernameToken userToken = new UsernameToken(this.UserName, this.Password, PasswordOption.SendPlainText);
            SoapContext ctx = svc.RequestSoapContext;
            ctx.Security.Tokens.Add(userToken);

            svc.Pipeline.OutputFilters.Insert(0, new InjectOrganizationInWsseSecurity("ATTI"));

            svc.RequestEncoding = System.Text.Encoding.UTF8;
            return svc;
        }
        private void RecursiveForEach(MailingService svc, int depth, Organization o, IEnumerable<Organization> orgs, Action<MailingService, int, Organization> action)
        {
            Assert.IsNotNull(o);

            action(svc, depth, o);
            foreach (var child in orgs.TakeChildrenOf(o))
            {
                RecursiveForEach(svc, depth + 1, child, orgs, action);
            }
        }