Exemple #1
0
        protected void CreateCampaigns(int start, int count, CampaignCategory category, out IList <Campaign> campaigns, out IList <Template> templates)
        {
            campaigns = new List <Campaign>();
            templates = new List <Template>();
            var createdStart = DateTime.Now.AddDays(-2);

            for (var index = start; index < start + count; ++index)
            {
                var name     = string.Format(CampaignNameFormat, index < 10 ? "00" + index : (index < 100 ? "0" + index : index.ToString(CultureInfo.InvariantCulture)));
                var campaign = new Campaign
                {
                    Id          = Guid.NewGuid(),
                    CreatedTime = createdStart.AddSeconds(index),
                    Name        = name,
                    Category    = category,
                };

                var template = new Template
                {
                    Subject = string.Format(TemplateSubjectFormat, index < 10 ? "00" + index : (index < 100 ? "0" + index : index.ToString(CultureInfo.InvariantCulture))),
                    Body    = string.Format(TemplateBodyFormat, index < 10 ? "00" + index : (index < 100 ? "0" + index : index.ToString(CultureInfo.InvariantCulture)))
                };

                _campaignsRepository.CreateCampaign(campaign);
                _campaignsRepository.CreateTemplate(campaign.Id, template);

                // Newest campaigns at start.

                campaigns.Insert(0, campaign);
                templates.Insert(0, template);
            }
        }
Exemple #2
0
 private static void AssertCampaign(CampaignCategory category, Guid?communicationDefinitionId, Guid?communicationCategoryId, string query, Campaign campaign)
 {
     Assert.AreEqual(category, campaign.Category);
     Assert.AreEqual(communicationDefinitionId, campaign.CommunicationDefinitionId);
     Assert.AreEqual(communicationCategoryId, campaign.CommunicationCategoryId);
     Assert.AreEqual(query, campaign.Query);
 }
Exemple #3
0
 protected Campaign CreateCampaign(int index, CampaignCategory category, string query, CampaignStatus status, out Campaign campaign, out Template template)
 {
     CreateCampaign(index, category, query, out campaign, out template);
     campaign.Status = status;
     _repository.UpdateStatus(campaign.Id, status);
     return(campaign);
 }
Exemple #4
0
        private void MultipleEmailsLoginsTest(CampaignCategory category)
        {
            var administrator = _administratorAccountsCommand.CreateTestAdministrator(1);
            var campaign      = CreateCampaign(1, category, administrator);

            const int count          = 2;
            var       loginIds       = new string[count];
            var       emailAddresses = new string[count];
            var       fullNames      = new string[count];

            if (category == CampaignCategory.Employer)
            {
                for (var index = 0; index < count; ++index)
                {
                    var employer = _employerAccountsCommand.CreateTestEmployer(index, _organisationsCommand.CreateTestOrganisation(index));
                    loginIds[index]       = employer.GetLoginId();
                    emailAddresses[index] = employer.EmailAddress.Address;
                    fullNames[index]      = employer.FullName;
                }
            }
            else
            {
                for (var index = 0; index < count; ++index)
                {
                    var member = _memberAccountsCommand.CreateTestMember(index);
                    loginIds[index]       = member.GetLoginId();
                    emailAddresses[index] = member.EmailAddresses[0].Address;
                    fullNames[index]      = member.FullName;
                }
            }

            // Login as administrator.

            LogIn(administrator);

            // Navigate to page and set the template.

            Get(GetEditTemplateUrl(campaign.Id));
            _subjectTextBox.Text = Subject;
            _bodyTextArea.Text   = Body;
            _saveButton.Click();

            // Send.

            _loginIdsTextBox.Text = string.Join(",", loginIds);
            _sendButton.Click();

            // Check.

            var emails = _emailServer.AssertEmailsSent(loginIds.Length);

            for (var index = 0; index < loginIds.Length; ++index)
            {
                var email = emails[index];
                email.AssertAddresses(Return, Return, new EmailRecipient(emailAddresses[index], fullNames[index]));
                email.AssertSubject(Subject);
                Assert.IsTrue(email.GetHtmlView().Body.Contains(Body));
            }
        }
Exemple #5
0
        protected Campaign CreateCampaign(int index, CampaignCategory category, Administrator administrator)
        {
            var campaign = new Campaign {
                Name = string.Format(CampaignNameFormat, index), CreatedBy = administrator.Id, Category = category
            };

            _campaignsCommand.CreateCampaign(campaign);
            return(campaign);
        }
        private ICommunicationUser CreateUser(CampaignCategory category, string emailAddress)
        {
            if (category == CampaignCategory.Member)
            {
                return(_membersQuery.GetMember(emailAddress));
            }
            var employers = _employersQuery.GetEmployers(emailAddress);

            return(employers.Count == 0 ? null : employers[0]);
        }
        private IList <Campaign> CreateCampaigns(int start, int count, CampaignCategory category, CampaignStatus status)
        {
            var campaigns = new List <Campaign>();

            for (var index = start; index < start + count; ++index)
            {
                Campaign campaign;
                Template template;
                CreateTestCampaign(index, category, status, out campaign, out template);
                campaigns.Insert(0, campaign);
            }
            return(campaigns);
        }
        protected Campaign CreateTestCampaign(int index, CampaignCategory category)
        {
            var campaign = new Campaign
            {
                Name      = string.Format(CampaignNameFormat, index),
                CreatedBy = Guid.NewGuid(),
                Category  = category,
                Query     = null,
            };

            _campaignsCommand.CreateCampaign(campaign);
            return(campaign);
        }
Exemple #9
0
        private void SubstitutionsTest(CampaignCategory category)
        {
            var administrator = _administratorAccountsCommand.CreateTestAdministrator(1);
            var campaign      = CreateCampaign(1, category, administrator);

            ICommunicationUser user;
            string             loginId;

            if (category == CampaignCategory.Employer)
            {
                var employer = _employerAccountsCommand.CreateTestEmployer(0, _organisationsCommand.CreateTestOrganisation(0));
                user    = employer;
                loginId = employer.GetLoginId();
            }
            else
            {
                var member = _memberAccountsCommand.CreateTestMember(0);
                user    = member;
                loginId = member.GetLoginId();
            }

            // Login as administrator.

            LogIn(administrator);

            // Navigate to page and set the template.

            Get(GetEditTemplateUrl(campaign.Id));

            const string subject = "Something for <%= To.FirstName %>";
            const string body    = "<%= To.FullName %>, here is something for you.";

            _subjectTextBox.Text = subject;
            _bodyTextArea.Text   = body;
            _saveButton.Click();

            // Send.

            _loginIdsTextBox.Text = loginId;
            _sendButton.Click();

            // Check.

            var email = _emailServer.AssertEmailSent();

            email.AssertAddresses(Return, Return, user);
            email.AssertSubject(subject.Replace("<%= To.FirstName %>", user.FirstName));
            Assert.IsTrue(email.GetHtmlView().Body.Contains(body.Replace("<%= To.FullName %>", user.FullName)));
        }
Exemple #10
0
        protected static Campaign CreateTestCampaign(int index, CampaignCategory category)
        {
            return(new Campaign
            {
                Name = string.Format(CampaignNameFormat, index),
                Category = category,
                CreatedBy = Guid.NewGuid(),

/*                Template = new Template
 *              {
 *                  Subject = string.Format(TemplateSubjectFormat, index),
 *                  Body = string.Format(TemplateBodyFormat, index)
 *              },*/
            });
        }
Exemple #11
0
        private void OneLoginTest(CampaignCategory category)
        {
            var administrator = _administratorAccountsCommand.CreateTestAdministrator(1);
            var campaign      = CreateCampaign(1, category, administrator);

            ICommunicationUser user;
            string             loginId;

            if (category == CampaignCategory.Employer)
            {
                var employer = _employerAccountsCommand.CreateTestEmployer(0, _organisationsCommand.CreateTestOrganisation(0));
                user    = employer;
                loginId = employer.GetLoginId();
            }
            else
            {
                var member = _memberAccountsCommand.CreateTestMember(0);
                user    = member;
                loginId = member.GetLoginId();
            }

            // Login as administrator.

            LogIn(administrator);

            // Navigate to page and set the template.

            Get(GetEditTemplateUrl(campaign.Id));
            _subjectTextBox.Text = Subject;
            _bodyTextArea.Text   = Body;
            _saveButton.Click();

            // Send.

            _loginIdsTextBox.Text = loginId;
            _sendButton.Click();

            // Check.

            var email = _emailServer.AssertEmailSent();

            email.AssertAddresses(Return, Return, user);
            email.AssertSubject(Subject);
            Assert.IsTrue(email.GetHtmlView().Body.Contains(Body));
        }
Exemple #12
0
        private void OneEmailTest(CampaignCategory category)
        {
            var administrator = _administratorAccountsCommand.CreateTestAdministrator(1);
            var campaign      = CreateCampaign(1, category, administrator);

            string emailAddress;
            string fullName;

            if (category == CampaignCategory.Member)
            {
                var member = _memberAccountsCommand.CreateTestMember(0);
                emailAddress = member.EmailAddresses[0].Address;
                fullName     = member.FullName;
            }
            else
            {
                var employer = _employerAccountsCommand.CreateTestEmployer(0, _organisationsCommand.CreateTestOrganisation(0));
                emailAddress = employer.EmailAddress.Address;
                fullName     = employer.FullName;
            }

            // Login as administrator.

            LogIn(administrator);

            // Navigate to page and set the template.

            Get(GetEditTemplateUrl(campaign.Id));
            _subjectTextBox.Text = Subject;
            _bodyTextArea.Text   = Body;
            _saveButton.Click();

            // Send.

            _emailAddressesTextBox.Text = emailAddress;
            _sendButton.Click();

            // Check.

            var email = _emailServer.AssertEmailSent();

            email.AssertAddresses(Return, Return, new EmailRecipient(emailAddress, fullName));
            email.AssertSubject(Subject);
            Assert.IsTrue(email.GetHtmlView().Body.Contains(Body));
        }
        protected void CreateTestCampaign(int index, CampaignCategory category, CampaignStatus status, out Campaign campaign, out Template template)
        {
            campaign = new Campaign
            {
                Id          = Guid.NewGuid(),
                Name        = Format(CampaignNameFormat, index),
                CreatedTime = DateTime.Now.AddMinutes(index),
                Category    = category,
                Query       = null,
                Status      = status,
            };

            _repository.CreateCampaign(campaign);
            template = new Template
            {
                Subject = Format(TemplateSubjectFormat, index),
                Body    = Format(TemplateBodyFormat, index)
            };

            _repository.CreateTemplate(campaign.Id, template);
        }
Exemple #14
0
        protected void CreateCampaign(int index, CampaignCategory category, string query, out Campaign campaign, out Template template)
        {
            campaign = new Campaign
            {
                Id                      = Guid.NewGuid(),
                Name                    = string.Format(CampaignNameFormat, index),
                CreatedBy               = Guid.NewGuid(),
                CreatedTime             = DateTime.Now.AddMinutes(index),
                Category                = category,
                CommunicationCategoryId = _settingsQuery.GetCategory("Campaign").Id,
                Query                   = query,
            };

            _campaignsCommand.CreateCampaign(campaign);

            template = new Template
            {
                Subject = string.Format(TemplateSubjectFormat, index),
                Body    = string.Format(TemplateBodyFormat, index)
            };
            _campaignsCommand.CreateTemplate(campaign.Id, template);
        }
Exemple #15
0
        public ActionResult PostEdit(Guid id, string name, CampaignCategory category, Guid?communicationDefinitionId, Guid?communicationCategoryId, string query)
        {
            // Get the campaign to update.

            var campaign = _campaignsQuery.GetCampaign(id);

            if (campaign == null)
            {
                return(NotFound("campaign", "id", id));
            }
            var createdBy = _administratorsQuery.GetAdministrator(campaign.CreatedBy);

            try
            {
                // Update it with the new values.

                campaign.Name     = name;
                campaign.Category = category;
                campaign.CommunicationDefinitionId = communicationDefinitionId;
                campaign.CommunicationCategoryId   = communicationCategoryId;
                campaign.Query = query.NullIfEmpty();
                _campaignsCommand.UpdateCampaign(campaign);

                return(RedirectToRoute(CampaignsRoutes.Edit, new { id }));
            }
            catch (UserException ex)
            {
                ModelState.AddModelError(ex, new StandardErrorHandler());
            }

            // Show the user the errors.

            return(View(new CampaignSummaryModel {
                Campaign = campaign, CreatedBy = createdBy, IsReadOnly = false, CommunicationDefinitions = _settingsQuery.GetDefinitions(), CommunicationCategories = _settingsQuery.GetCategories()
            }));
        }
Exemple #16
0
 public ActionResult PagedCategoryIndex(CampaignCategory category, int page)
 {
     return(Index(category, page));
 }
Exemple #17
0
 private static IQueryable <Campaign> GetCampaignsByCategory(CampaignsDataContext dc, CampaignCategory category, Range range)
 {
     if (range.Skip != 0)
     {
         return(range.Take != null
             ? GetCampaignsByCategorySkipTakeQuery(dc, category, range.Skip, range.Take.Value)
             : GetCampaignsByCategorySkipQuery(dc, category, range.Skip));
     }
     return(range.Take != null
         ? GetCampaignsByCategoryTakeQuery(dc, category, range.Take.Value)
         : GetCampaignsByCategoryQuery(dc, category));
 }
Exemple #18
0
 public ActionResult CategoryIndex(CampaignCategory category)
 {
     return(Index(category, null));
 }
 IList <RegisteredUser> ICampaignCriteriaCommand.Match(CampaignCategory category, string query)
 {
     return(category == CampaignCategory.Employer ? MatchEmployers(query) : MatchMembers(query));
 }
 IList <RegisteredUser> ICampaignCriteriaCommand.Match(CampaignCategory category, Criteria criteria)
 {
     return(category == CampaignCategory.Employer ? MatchEmployers(criteria) : MatchMembers(criteria));
 }
 protected void CreateTestCampaign(int index, CampaignCategory category, out Campaign campaign, out Template template)
 {
     CreateTestCampaign(index, category, CampaignStatus.Draft, out campaign, out template);
 }