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);
        }
Beispiel #4
0
        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);
                }
            }
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
 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);
            }
        }
Beispiel #9
0
    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);
        }
Beispiel #11
0
        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);
        }
Beispiel #16
0
 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));
 }
Beispiel #17
0
 public HomeController()
 {
     recRep = new RecipientRepository();
     msgRep = new MessageRepository();
 }
Beispiel #18
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());
        }
 public RecipientService(RecipientRepository repository)
 {
     this.repository = repository;
 }