public async Task GetById_ShouldReturnEmptyQueryable_WhenIdDoesNotMatch() { // Arrange const int recipientId = 5431; DbSet <Recipient> databaseRecipients = Enumerable .Empty <Recipient>() .AsQueryable() .BuildMockDbSet() .Object; _contextMock .Setup(m => m.Recipients) .Returns(databaseRecipients); RecipientRepository repository = new RecipientRepository(_contextMock.Object); // Act Recipient recipient = await repository .GetById(recipientId) .SingleOrDefaultAsync(); // Assert Assert.Null(recipient); }
public async Task GetById_ShouldReturnQueryableWithSingleRecipient_WhenIdMatches() { // Arrange const int recipientId = 2; DbSet <Recipient> databaseRecipients = new[] { new Recipient { RecipientId = 1 }, new Recipient { RecipientId = 2 }, } .AsQueryable() .BuildMockDbSet() .Object; _contextMock .Setup(m => m.Recipients) .Returns(databaseRecipients); RecipientRepository repository = new RecipientRepository(_contextMock.Object); // Act Recipient recipient = await repository .GetById(recipientId) .SingleOrDefaultAsync(); // Assert Assert.NotNull(recipient); Assert.Equal(recipientId, recipient.RecipientId); }
public async Task Exists_ShouldReturnTrue_WhenRecipientExists() { // Arrange const int recipientId = 1; DbSet <Recipient> databaseRecipients = new[] { new Recipient { RecipientId = 1 }, new Recipient { RecipientId = 2 }, } .AsQueryable() .BuildMockDbSet() .Object; _contextMock .Setup(m => m.Recipients) .Returns(databaseRecipients); RecipientRepository repository = new RecipientRepository(_contextMock.Object); // Act bool exists = await repository.Exists(recipientId); // Assert Assert.True(exists); }
protected override void OnInit(EventArgs e) { base.OnInit(e); this.recipientRepository = EcmFactory.GetDefaultFactory().Bl.RecipientRepository; NameValueCollection parameters = this.GetSublayoutParams(); var val = parameters["Show List"]; this.showList = (val != null) && val == "1"; val = parameters["Recipient Lists"]; this.rawIncludeRecipientLists = val ?? string.Empty; val = parameters["Exclude Lists"]; if (!string.IsNullOrEmpty(val)) { this.excludeRecipientLists = Data.ID.ParseArray(val); } val = parameters["Manager root"]; this.rootId = val ?? string.Empty; if (this.SubscriptionInfos != null && this.showList) { foreach (var info in this.SubscriptionInfos) { this.AddSrcComboBox(info); } } }
public void SendTriggeredMessageToXDB(Guid messageId, Guid contactId, bool usePreferredLanguage = false, IDictionary <string, object> customPersonTokens = null) { RecipientId recipientId = RecipientRepository.GetDefaultInstance().ResolveRecipientId("xdb:" + contactId); Sitecore.Modules.EmailCampaign.Application.Application.Instance.EmailDispatch.SendTriggered(messageId, recipientId, usePreferredLanguage, customPersonTokens); }
private static void LoadMails() { using (var session = PersistenceHelper.OpenSession()) { var repository = new RecipientRepository(session); repository.GetActive().ToList().ForEach(r => Console.WriteLine(r.Name)); } Console.WriteLine("recuperado ativos"); Console.Read(); }
public ContactsStatesDataSource(EcmFactory ecmFactory, CoreFactory coreFactory, ReportDataProviderExt reportDataProvider, RecipientRepository recipientRepository) { Assert.ArgumentNotNull(ecmFactory, "ecmFactory"); Assert.ArgumentNotNull(coreFactory, "coreFactory"); Assert.ArgumentNotNull(reportDataProvider, "reportDataProvider"); Assert.ArgumentNotNull(recipientRepository, "recipientRepository"); this.ecmFactory = ecmFactory; this.coreFactory = coreFactory; this.reportDataProvider = reportDataProvider; this.recipientRepository = recipientRepository; }
public void CanCreateNew() { using (var session = PersistenceHelper.OpenSession()) { var repository = new RecipientRepository(session); var r = new Recipient {Email = "*****@*****.**", IsActive = true, Name = "Chalk"}; repository.CreateOrUpdate(r); Assert.IsTrue(repository.GetActive().Count > 0); repository.Remove(r); } }
public async Task GetByIdIncludingMemberships_ShouldReturnNull_WhenIdDoesNotMatch() { // Arrange const int recipientId = 5431; IRecipientRepository repository = new RecipientRepository(_context); // Act Recipient recipient = await repository.GetByIdIncludingMemberships(recipientId); // Assert Assert.Null(recipient); }
public JsonResult Subscrible(string name, string email) { var recipient = new Recipient {Email = email, Name = name, IsActive = true}; using (var session = PersistenceHelper.OpenSession()) { var repository = new RecipientRepository(session); var recipientGet = repository.GetByEmail(email); if (recipientGet == null) repository.CreateOrUpdate(recipient); else { recipientGet.IsActive = true; repository.CreateOrUpdate(recipientGet); } } return Json(new { messageStatus = "OK", status = "Subscribled", recipient }, JsonRequestBehavior.AllowGet); }
private static void ImportRecipients() { Console.Clear(); Console.WriteLine("Informe o caminho do arquivo csv"); var path = Console.ReadLine(); var file = new System.IO.StreamReader(path); while (!file.EndOfStream) { var data = file.ReadLine().Split(','); Console.WriteLine("Importando \"contato: {0} - Email: {1}\"".FormatWith(data[0], data[1])); var recipient = new Recipient {Name = data[0], Email = data[1], IsActive = true}; using (var session = PersistenceHelper.OpenSession()) { var repository = new RecipientRepository(session); repository.CreateOrUpdate(recipient); } } file.Close(); Console.WriteLine("Importação conluida"); Console.ReadKey(); }
public async Task Add_ShouldAddRecipientsToTheDbContext() { // Arrange Recipient recipient = new Recipient(); Mock <DbSet <Recipient> > membershipDbSetMock = Enumerable .Empty <Recipient>() .AsQueryable() .BuildMockDbSet(); _contextMock .Setup(m => m.Recipients) .Returns(membershipDbSetMock.Object); RecipientRepository repository = new RecipientRepository(_contextMock.Object); // Act await repository.Add(recipient); // Assert _contextMock.Verify(m => m.Recipients.AddAsync(recipient, It.IsAny <CancellationToken>())); }
public ActionResult Send(MailingModel model) { if (AuthContext.CurrentContext.CurrentUser == null) return View("Login"); if (!ModelState.IsValid) return View("Index", model); var recipients = new List<Recipient>(); if (model.To == "base" || model.To == "todos") using (var session = PersistenceHelper.OpenSession()) recipients = new RecipientRepository(session).GetActive().ToList(); else model.To.Replace(",", ";").Replace(" ", "").Split(';').ToList().ForEach( r => recipients.Add(new Recipient {IsActive = true, Email = r, Name = r, CreatedAt = DateTime.Now, Id = 0})); var hosts = new Hosts(); var path = AppDomain.CurrentDomain.BaseDirectory + "MailHosts.xml"; var sender = new NewsSenderManager(hosts.Load(path)); sender.ProcessQueue(model.Body, model.Subject, recipients); return View("Index", new MailingModel { SendReturn = "enviado com sucesso." }); }
protected override void OnInit(EventArgs e) { base.OnInit(e); this.recipientRepository = EcmFactory.GetDefaultFactory().Bl.RecipientRepository; NameValueCollection parameters = this.GetSublayoutParams(); var val = parameters["Show List"]; this.showList = (val != null) && val == "1"; val = parameters["Recipient Lists"]; this.rawIncludeRecipientLists = val ?? string.Empty; val = parameters["Exclude Lists"]; if (!string.IsNullOrEmpty(val)) { this.excludeRecipientLists = Data.ID.ParseArray(val); } val = parameters["Manager root"]; this.rootId = val ?? string.Empty; if (this.SubscriptionInfos != null && this.showList) { foreach (var info in this.SubscriptionInfos) { this.AddSrcComboBox(info); } } }
public JsonResult Unsubscrible(string email) { using (var session = PersistenceHelper.OpenSession()) { var repository = new RecipientRepository(session); var recipient = repository.GetByEmail(email); recipient.IsActive = false; repository.CreateOrUpdate(recipient); } return Json(new { messageStatus = "OK", status = "Unsubscribled" }, JsonRequestBehavior.AllowGet); }
public ActionResult Index(SubscribeModel subscribe) { if (ModelState.IsValid) { using (new SecurityDisabler()) { try { string emailAddress = subscribe.Email; EmailHelper emailhelper = new EmailHelper(); ContactRepository contactRepository = Sitecore.Configuration.Factory.CreateObject("tracking/contactRepository", true) as ContactRepository; var contact = contactRepository.LoadContactReadOnly(emailAddress); ContactManager contactManager = Sitecore.Configuration.Factory.CreateObject("tracking/contactManager", true) as ContactManager; LockAttemptResult <Contact> lockResult; if (contact == null) { lockResult = new LockAttemptResult <Contact>(LockAttemptStatus.NotFound, null, null); contact = contactRepository.CreateContact(Sitecore.Data.ID.NewID); contact.Identifiers.AuthenticationLevel = Sitecore.Analytics.Model.AuthenticationLevel.None; contact.Identifiers.Identifier = emailAddress; contact.Identifiers.IdentificationLevel = ContactIdentificationLevel.Known; contact.System.Value = 0; contact.System.VisitCount = 0; contact.ContactSaveMode = ContactSaveMode.AlwaysSave; contactManager.FlushContactToXdb(contact); } else { lockResult = contactManager.TryLoadContact(contact.ContactId); contact = lockResult.Object; } var personal = contact.GetFacet <Sitecore.Analytics.Model.Entities.IContactPersonalInfo>("Personal"); personal.FirstName = subscribe.FullName; var emailAddresses = contact.GetFacet <Sitecore.Analytics.Model.Entities.IContactEmailAddresses>("Emails"); if (!emailAddresses.Entries.Contains("Email")) { emailAddresses.Entries.Create("Email"); } var email = emailAddresses.Entries["Email"]; email.SmtpAddress = emailAddress; emailAddresses.Preferred = "Email"; var contactEmailAddresses = contact.GetFacet <IVisitorSubscribtionFacet>("Contact Details"); if (!contactEmailAddresses.SubscriptionDetails.Contains("Subscriber Details")) { contactEmailAddresses.SubscriptionDetails.Create("Subscriber"); contactEmailAddresses.SubscriptionDetails["Subscriber"].FullName = subscribe.FullName; contactEmailAddresses.SubscriptionDetails["Subscriber"].ContactNumber = subscribe.ContactNumber; contactEmailAddresses.SubscriptionDetails["Subscriber"].Email = subscribe.Email; contactEmailAddresses.SubscriptionDetails["Subscriber"].Comments = subscribe.Comments; } ContactListManager listManager = Sitecore.Configuration.Factory.CreateObject("contactListManager", false) as ContactListManager; contactManager.SaveAndReleaseContactToXdb(contact); Tracker.Current.Session.Identify(subscribe.Email); //Getting the Email Campaign ManagerRoot Item managerRoot = Sitecore.Data.Database.GetDatabase(SitecoreHelper.GetSitecoreDB().ToString()).GetItem(GlobalProperties.EmailCampaignMangerRoot); RecipientId recipient = RecipientRepository.GetDefaultInstance().ResolveRecipientId("xdb:" + contact.ContactId); var recipientId = new Sitecore.Modules.EmailCampaign.Xdb.XdbContactId(contact.ContactId); Sitecore.Modules.EmailCampaign.ClientApi.UpdateSubscriptions(recipientId, new[] { GlobalGuids.ContactList }, new string[] { }, managerRoot.ID.ToString(), false); emailhelper.SendEmail(subscribe); subscribe.IsFormEnabled = false; } catch (Exception ex) { subscribe.IsError = true; subscribe.IsFormEnabled = false; Sitecore.Diagnostics.Log.Error(ex.Message, this); } } return(View("~/Views/Pages/Subscribe.cshtml", subscribe)); } subscribe.IsError = false; subscribe.IsFormEnabled = true; return(View("~/Views/Pages/Subscribe.cshtml", subscribe)); }
public HomeController() { recRep = new RecipientRepository(); msgRep = new MessageRepository(); }
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()); }
public RecipientService(RecipientRepository repository) { this.repository = repository; }