Esempio n. 1
0
        private void InitExistingList()
        {
            MessageItem message = UIFactory.Instance.GetSpeakContext().Message;

            this.RecipientListSource.ID = "RecipientListSource";
            if (Sitecore.Context.User.IsAdministrator)
            {
                this.RecipientListSource.SelectCommand = "fast:@recipientContainerPath[@@id = '@recipientContainerId']//*[(@@templateid='@recipientListTemplate') and @filterExpression]";
            }
            else
            {
                this.RecipientListSource.SelectCommand = "fast:@recipientContainerPath[@@id = '@recipientContainerId']//*[(@__Created by='@ownerName') and (@@templateid='@recipientListTemplate') and @filterExpression]";
            }
            Parameter parameter = new Parameter("@recipientContainerPath")
            {
                DefaultValue = ItemUtilExt.GetRecipientListsContainerItem(message.InnerItem).Paths.FullPath
            };

            this.RecipientListSource.SelectParameters.Add(parameter);
            Parameter parameter2 = new Parameter("@recipientContainerId")
            {
                DefaultValue = ItemUtilExt.GetRecipientListsContainerItem(message.InnerItem).ID.ToString()
            };

            this.RecipientListSource.SelectParameters.Add(parameter2);
            Parameter parameter3 = new Parameter("@recipientListTemplate")
            {
                DefaultValue = "{B95EB9EA-8F86-44FE-B619-4B29C1343F95}"
            };

            this.RecipientListSource.SelectParameters.Add(parameter3);
            if (!Sitecore.Context.User.IsAdministrator)
            {
                Parameter parameter5 = new Parameter("@ownerName")
                {
                    DefaultValue = Sitecore.Context.User.Name.Replace(@"\\", @"\")
                };
                this.RecipientListSource.SelectParameters.Add(parameter5);
            }
            ControlParameter parameter4 = new ControlParameter("@filterExpression", this.FilterDropList.ID, "FilterExpression")
            {
                DefaultValue = "true"
            };

            this.RecipientListSource.SelectParameters.Add(parameter4);
            this.FilterDropList.DataSourceId = this.RecipientListSource.ID;
            this.FilterDropList.Command      = typeof(AddRecipientListCommand).FullName;
            this.FilterDropList.Width        = new Unit("120px");
            this.FilterDropList.CssClass     = "sc-recipient-menu-button";
            if (!string.IsNullOrEmpty(this.DataSourceItem["Use Existing List Button"]))
            {
                this.FilterDropList.Title = this.DataSourceItem["Use Existing List Button"];
            }
        }
        private void SetStatisticsOnCampaignItem(MessageItem messageItem, DateTime dateMessageSent, DateTime dateMessageFinished)
        {
            var itemUtil     = new ItemUtilExt();
            var campaignItem = itemUtil.GetItem(messageItem.CampaignId);

            using (new EditContext(campaignItem))
            {
                campaignItem["StartDate"] = DateUtil.ToIsoDate(dateMessageSent);
                campaignItem[CampaignclassificationItem.FieldIDs.Channel] = GlobalSettings.Instance.CampaignClassificationChannel;
                campaignItem["EndDate"] = DateUtil.ToIsoDate(dateMessageFinished);
            }
        }
Esempio n. 3
0
 public GenerateCampaignDataService(Guid exmCampaignId, CampaignSettings campaign)
 {
     _campaign                = campaign;
     _exmCampaignId           = exmCampaignId;
     _contactListRepository   = new ContactListRepository();
     _exmCampaignService      = (IExmCampaignService)ServiceLocator.ServiceProvider.GetService(typeof(IExmCampaignService));
     _dispatchManager         = (IDispatchManager)ServiceLocator.ServiceProvider.GetService(typeof(IDispatchManager));
     _ecmDataProvider         = (EcmDataProvider)ServiceLocator.ServiceProvider.GetService(typeof(EcmDataProvider));
     _recipientManagerFactory = (IRecipientManagerFactory)ServiceLocator.ServiceProvider.GetService(typeof(IRecipientManagerFactory));
     _logger      = (ILogger)ServiceLocator.ServiceProvider.GetService(typeof(ILogger));
     _itemUtilExt = (ItemUtilExt)ServiceLocator.ServiceProvider.GetService(typeof(ItemUtilExt));
     _adjustEmailStatisticsService      = new AdjustEmailStatisticsService();
     _randomContactMessageEventsFactory = new RandomContactMessageEventsFactory(_campaign);
 }
Esempio n. 4
0
        public MessageReportController(IEmailLandingPagesRepository emailLandingPagesRepository, IContactsStatesRepository contactsStatesRepository, IMessageStatisticsService messageStatisticsService, SortParameterFactory sortParameterFactory)
        {
            Assert.ArgumentNotNull(emailLandingPagesRepository, "emailLandingPagesRepository");
            Assert.ArgumentNotNull(contactsStatesRepository, "contactsStatesRepository");
            Assert.ArgumentNotNull(sortParameterFactory, "sortParameterFactory");
            this.emailLandingPagesRepository = emailLandingPagesRepository;
            this.contactsStatesRepository    = contactsStatesRepository;
            this.messageStatisticsService    = messageStatisticsService;
            this.sortParameterFactory        = sortParameterFactory;
            this.bestPagesMappings           = new Dictionary <string, string>();
            this.bestPagesMappings.Add("ValuePerVisit", "Most Relevant");
            this.bestPagesMappings.Add("Value", "Most Valuable");
            this.bestPagesMappings.Add("Visits", "Most Clicked");
            this.bestPagesMappings.Add("Attention", "Most Attention");
            this.bestPagesMappings.Add("Potential", "Most Potential");
            ItemUtilExt        itemUtilExt        = CoreFactory.Instance.GetItemUtilExt();
            ReportDataProvider reportDataProvider = Sitecore.Configuration.Factory.CreateObject("reporting/dataProvider", true) as ReportDataProvider;

            this.contactsStatesDataSource = new Sitecore.Support.Modules.EmailCampaign.Statistics.DataSources.ContactsStatesDataSource(EcmFactory.GetDefaultFactory(), CoreFactory.Instance, new ReportDataProviderExt(reportDataProvider, itemUtilExt), RecipientRepository.GetDefaultInstance());
        }
        private void AdjustEmailStats(MessageItem messageItem, SendingProcessData sendingProcessData,
                                      DateTime dateMessageSent, DateTime dateMessageFinished)
        {
            var deployAnalytics = new DeployAnalytics();

            deployAnalytics.Process(new DispatchNewsletterArgs(messageItem, sendingProcessData));

            messageItem.Source.StartTime = dateMessageSent;
            messageItem.Source.EndTime   = dateMessageFinished;

            var innerItem = messageItem.InnerItem;

            using (new EditContext(innerItem))
            {
                innerItem.RuntimeSettings.ReadOnlyStatistics = true;
                innerItem[FieldIDs.Updated] = DateUtil.ToIsoDate(dateMessageSent);
            }

            var itemUtil     = new ItemUtilExt();
            var campaignItem = itemUtil.GetItem(messageItem.CampaignId);

            using (new EditContext(campaignItem))
            {
                campaignItem["StartDate"] = DateUtil.ToIsoDate(dateMessageSent);
                campaignItem[CampaignclassificationItem.FieldIDs.Channel] =
                    EcmFactory.GetDefaultFactory().Io.EcmSettings.CampaignClassificationChannel;
                campaignItem["EndDate"] = DateUtil.ToIsoDate(dateMessageFinished);
            }

            EcmFactory.GetDefaultFactory()
            .Gateways.EcmDataGateway.SetMessageStatisticData(messageItem.CampaignId.ToGuid(), dateMessageSent,
                                                             dateMessageFinished, FieldUpdate.Set(messageItem.SubscribersIds.Value.Count),
                                                             FieldUpdate.Set(messageItem.SubscribersIncludeCount.Value),
                                                             FieldUpdate.Set(messageItem.SubscribersExcludeCount.Value),
                                                             FieldUpdate.Set(messageItem.SubscribersGlobalOptOutCount.Value));
        }
Esempio n. 6
0
 public new static bool IsCorrectMessageItem(Item item)
 {
     return(ItemUtilExt.IsTemplateDescendant(item, Sitecore.Configuration.Settings.GetSetting("FlaminGalahs.Foundation.Mail.SmsMessageTemplateId")));
 }
Esempio n. 7
0
        /// <exception cref="EmailCampaignException"><c>EmailCampaignException</c>.</exception>
        protected virtual void Subscribe_click(object sender, EventArgs args)
        {
            try
            {
                if (!string.IsNullOrEmpty(this.RecipientEmail) && !this.Email.Text.Equals(this.RecipientEmail, StringComparison.OrdinalIgnoreCase))
                {
                    if (!Util.IsValidEmail(this.Email.Text))
                    {
                        throw new EmailCampaignException(Util.GetFrontEndText("email not valid"));
                    }

                    string text = Util.GetFrontEndText("address changed confirmation");
                    this.AddConfirmationDlg(string.Format(text, Util.GetFrontEndText("an email")));
                    return;
                }

                if (string.IsNullOrEmpty(this.RecipientEmail))
                {
                    this.UpdateEmailInXDB();
                }

                List <string> listsToSubscribe   = new List <string>();
                List <string> listsToUnsubscribe = new List <string>();

                if (this.showList)
                {
                    List <CheckBox> items = this.GetSrcListItems();

                    for (int i = 0; i < items.Count; i++)
                    {
                        CheckBox checkBox = items[i];
                        Guid     recipientListId;
                        if (!Guid.TryParse(checkBox.Attributes["value"], out recipientListId))
                        {
                            continue;
                        }

                        if (checkBox.Checked)
                        {
                            listsToSubscribe.Add(recipientListId.ToString());
                        }
                        else
                        {
                            listsToUnsubscribe.Add(this.excludeRecipientLists[i].Guid.ToString());
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < this.SubscriptionInfos.Length; i++)
                    {
                        listsToSubscribe.Add(this.SubscriptionInfos[i].ContactListId);
                    }
                }

                string itemIdToRedirect = ClientApi.UpdateSubscriptions(this.RecipientId, listsToSubscribe.ToArray(), listsToUnsubscribe.ToArray(), this.rootId, this.confirmSubscription);

                if (!string.IsNullOrEmpty(itemIdToRedirect))
                {
                    string url = ItemUtilExt.GetContentItemPageUrl(itemIdToRedirect);
                    if (!string.IsNullOrEmpty(url))
                    {
                        Response.Redirect(url, false);
                        Context.ApplicationInstance.CompleteRequest();
                    }
                }
            }
            catch (EmailCampaignException e)
            {
                this.Warning.InnerText = e.LocalizedMessage;
            }
            catch (Exception e)
            {
                this.Warning.InnerText = Util.GetFrontEndText(e.Message);
                Logging.LogError(e);
            }
        }