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); } }
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); }
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)); }
public new static bool IsCorrectMessageItem(Item item) { return(ItemUtilExt.IsTemplateDescendant(item, Sitecore.Configuration.Settings.GetSetting("FlaminGalahs.Foundation.Mail.SmsMessageTemplateId"))); }
/// <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); } }