/// <summary>
        /// Generates campaign.
        /// </summary>
        /// <param name="campaignData">Campaign data for generating.</param>
        private void GenerateCampaign(CampaignData campaignData)
        {
            var siteName = mSite.SiteName;
            var campaign = CampaignInfoProvider.GetCampaignInfo(campaignData.CampaignName, siteName);

            if (campaign != null)
            {
                return;
            }

            campaign = new CampaignInfo
            {
                CampaignName         = campaignData.CampaignName,
                CampaignDisplayName  = campaignData.CampaignDisplayName,
                CampaignDescription  = campaignData.CampaignDescription,
                CampaignOpenFrom     = campaignData.CampaignOpenFrom,
                CampaignCalculatedTo = campaignData.CampaignOpenFrom,
                CampaignOpenTo       = campaignData.CampaignOpenTo,
                CampaignSiteID       = mSite.SiteID,
                CampaignUTMCode      = campaignData.CampaignUTMCode
            };

            CampaignInfoProvider.SetCampaignInfo(campaign);

            /* Add email to campaign promotion section  */
            CampaignDataGeneratorHelpers.AddNewsletterAsset(campaign, campaignData.CampaignEmailPromotion);
            var issue = ProviderHelper.GetInfoByGuid(PredefinedObjectType.NEWSLETTERISSUE, campaignData.CampaignEmailPromotion, campaign.CampaignSiteID);

            if (issue != null)
            {
                issue.SetValue("IssueStatus", 5);
                issue.SetValue("IssueMailoutTime", campaignData.CampaignOpenFrom);

                issue.Update();
            }

            /* Add page assets to campaign content inventory section */
            foreach (var assetUrlGuid in campaignData.CampaignContentInventory)
            {
                CampaignDataGeneratorHelpers.AddPageAsset(campaign.CampaignID, assetUrlGuid);
            }

            /* Add conversions to campaign report setup section */
            foreach (var conversion in campaignData.CampaignReportSetup)
            {
                CampaignDataGeneratorHelpers.CreateConversion(campaign.CampaignID, conversion);
            }
        }
        private void GenerateActivities(string campaignName, Dictionary <string, IEnumerable <ActivityDataParameters> > conversionHits, int contactsCount)
        {
            var siteName = mSite.SiteName;
            var campaignCafePromotion = CampaignInfoProvider.GetCampaignInfo(campaignName, siteName);

            var pageVisitColombia = CampaignDataGeneratorHelpers.GetDocument(PAGE_PATH_COFFEE_SAMPLES);
            var formFreeSample    = BizFormInfoProvider.GetBizFormInfo(COFFEE_SAMPLE_LIST_FORM_CODE_NAME, mSite.SiteID);

            /* Generate activities for campaign */
            CampaignDataGeneratorHelpers.DeleteOldActivities(campaignCafePromotion.CampaignUTMCode);
            var campaignContactsIDs = new ContactsIDData(mContactFirstNamePrefix, contactsCount);

            CampaignDataGeneratorHelpers.GenerateActivities(conversionHits[CONVERSION_PAGEVISIT_COFFEE_SAMPLES], campaignCafePromotion, PredefinedActivityType.PAGE_VISIT, campaignContactsIDs, activityUrl: DocumentURLProvider.GetAbsoluteLiveSiteURL(pageVisitColombia));
            CampaignDataGeneratorHelpers.GenerateActivities(conversionHits[CONVERSION_FORMSUBMISSION_COFFEE_SAMPLE_LIST], campaignCafePromotion, PredefinedActivityType.BIZFORM_SUBMIT, campaignContactsIDs, formFreeSample.FormID);
            CampaignDataGeneratorHelpers.GenerateActivities(conversionHits[CONVERSION_PURCHASE], campaignCafePromotion, PredefinedActivityType.PURCHASE, campaignContactsIDs);
        }
        private IEnumerable <CampaignConversionData> PrepareCafeSamplePromotionConversions()
        {
            var pageCoffeeSamples    = CampaignDataGeneratorHelpers.GetDocument(PAGE_PATH_COFFEE_SAMPLES);
            var formCoffeeSampleList = BizFormInfoProvider.GetBizFormInfo(COFFEE_SAMPLE_LIST_FORM_CODE_NAME, mSite.SiteID);

            var liveUrl = DocumentURLProvider.GetAbsoluteLiveSiteURL(pageCoffeeSamples);

            return(new List <CampaignConversionData>
            {
                /*  Campaign conversions. */
                new CampaignConversionData
                {
                    ConversionName = "coffee_samples",
                    ConversionDisplayName = pageCoffeeSamples.DocumentName,
                    ConversionActivityType = PredefinedActivityType.PAGE_VISIT,
                    ConversionItemID = null,
                    ConversionOrder = 1,
                    ConversionIsFunnelStep = false,
                    ConversionUrl = liveUrl
                },
                new CampaignConversionData
                {
                    ConversionName = "coffee_sample_list",
                    ConversionDisplayName = CONVERSION_FORMSUBMISSION_COFFEE_SAMPLE_LIST,
                    ConversionActivityType = PredefinedActivityType.BIZFORM_SUBMIT,
                    ConversionItemID = formCoffeeSampleList.FormID,
                    ConversionOrder = 2,
                    ConversionIsFunnelStep = false
                },

                /* Campaign journey steps. */
                new CampaignConversionData
                {
                    ConversionName = "coffee_samples_1",
                    ConversionDisplayName = pageCoffeeSamples.DocumentName,
                    ConversionActivityType = PredefinedActivityType.PAGE_VISIT,
                    ConversionItemID = null,
                    ConversionOrder = 1,
                    ConversionIsFunnelStep = true,
                    ConversionUrl = liveUrl
                },
                new CampaignConversionData
                {
                    ConversionName = "coffee_sample_list_1",
                    ConversionDisplayName = CONVERSION_FORMSUBMISSION_COFFEE_SAMPLE_LIST,
                    ConversionActivityType = PredefinedActivityType.BIZFORM_SUBMIT,
                    ConversionItemID = formCoffeeSampleList.FormID,
                    ConversionOrder = 2,
                    ConversionIsFunnelStep = true
                },
                new CampaignConversionData
                {
                    ConversionName = "purchase",
                    ConversionDisplayName = CONVERSION_PURCHASE,
                    ConversionActivityType = PredefinedActivityType.PURCHASE,
                    ConversionItemID = 0,
                    ConversionOrder = 3,
                    ConversionIsFunnelStep = true
                }
            });
        }