public static Result<string> Create(string apiKey, string clientID, string campaignName, string campaignSubject, string fromName, string fromEmailAddress, string replyToEmailAddress, string htmlContentURL, string textContentURL, List<string> listIDs, List<ListSegment> listSegments)
        {
            CampaignMonitorAPIWrapper.CampaignMonitorAPI.api _api = new CampaignMonitorAPI.api();

            object o = _api.CreateCampaign(apiKey, clientID, campaignName, campaignSubject, fromName, fromEmailAddress, replyToEmailAddress, htmlContentURL, textContentURL, listIDs.ToArray(), listSegments.ConvertAll<CampaignMonitorAPI.List>(
                delegate(ListSegment segment)
            {
                CampaignMonitorAPI.List apiSegment = new CampaignMonitorAPI.List();
                apiSegment.ListID = segment.ListID;
                apiSegment.Name = segment.SegmentName;

                return apiSegment;
            }).ToArray());

            if (o is CampaignMonitorAPI.Result)
                return new Result<string>((CampaignMonitorAPI.Result)o, "");
            else
                return new Result<string>(0, "Success", Convert.ToString(o));
        }