public async Task <IActionResult> AddContactToCampaign(Guid campaignid, Guid contactid) { try { if (_automailerContext.Campaigns.FirstOrDefault(x => x.CampaignId == campaignid) == null) { return(NotFound(campaignid)); } if (_automailerContext.Contacts.FirstOrDefault(x => x.ContactId == contactid) == null) { return(NotFound(contactid)); } CampaignContact campaignContact = CampaignContact.Create(campaignid, contactid); _automailerContext.CampaignContacts.Add(campaignContact); await _automailerContext.SaveChangesAsync(); return(Ok(campaignContact)); } catch (Exception ex) { _logger.LogError(ex.Message); return(Problem(ex.Message)); } }
public async Task <IActionResult> Create([Bind("Name,EmailId,EmailName,EmailContent,EmailObject,EmailExpeditor,ContactsEmailAdress")] CampaignDto campaignDto) { if (ModelState.IsValid) { int emailId = 0; if (!string.IsNullOrEmpty(campaignDto.EmailName)) { Email email = new Email() { Name = campaignDto.EmailName, Content = campaignDto.EmailContent, Object = campaignDto.EmailObject, Expeditor = campaignDto.EmailExpeditor }; _context.Email.Add(email); await _context.SaveChangesAsync(); var emailSaved = _context.Email.FirstOrDefault(e => e.Name.Equals(email.Name)); emailId = emailSaved.Id; } else { emailId = (int)campaignDto.EmailId; } Campaign campaign = new Campaign() { Name = campaignDto.Name, EmailId = emailId, }; var createdStatus = _context.CampaignStatus.FirstOrDefault(s => s.Name.Equals("Created")); campaign.CampaingStatusId = createdStatus.Id; _context.Campaign.Add(campaign); await _context.SaveChangesAsync(); foreach (var item in campaignDto.ContactsEmailAdress) { var contact = _context.Contact.FirstOrDefault(s => s.EmailAdress.Equals(item)); var campaignSaved = _context.Campaign.FirstOrDefault(c => c.Name.Equals(campaign.Name)); var campaignContact = new CampaignContact() { ContactId = contact.Id, CampaignId = campaignSaved.Id }; _context.CampaignContact.Add(campaignContact); } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["EmailId"] = new SelectList(_context.Email, "Id", "Id", campaignDto.EmailId); return(View(campaignDto)); }
private static List <CampaignContact> CreateCampaignContacts(Campaign campaign, List <Contact> contacts) { List <CampaignContact> campaignContacts = new List <CampaignContact>(); foreach (Contact contact in contacts) { campaignContacts.Add(CampaignContact.Create(campaign.CampaignId, contact.ContactId)); } return(campaignContacts); }
public static Campaign UpdateCampaignContact(this Campaign campaign, IPrimaryContactModel contactModel, AllReadyContext _context) { if (campaign.CampaignContacts == null) { campaign.CampaignContacts = new List <CampaignContact>(); } var primaryCampaignContact = campaign.CampaignContacts.SingleOrDefault(tc => tc.ContactType == (int)ContactTypes.Primary); var contactId = primaryCampaignContact?.ContactId; Contact primaryContact; var contactInfo = string.Concat(contactModel.PrimaryContactEmail?.Trim() + contactModel.PrimaryContactFirstName?.Trim(), contactModel.PrimaryContactLastName?.Trim(), contactModel.PrimaryContactPhoneNumber?.Trim()); if (contactId == null) { primaryContact = new Contact(); } else { primaryContact = _context.Contacts.Single(c => c.Id == contactId); } if (string.IsNullOrWhiteSpace(contactInfo) && primaryCampaignContact != null) { //Delete _context.CampaignContacts.Remove(primaryCampaignContact); _context.Remove(primaryCampaignContact);//Not Needed? _context.Remove(primaryCampaignContact.Contact); } else { primaryContact.Email = contactModel.PrimaryContactEmail; primaryContact.FirstName = contactModel.PrimaryContactFirstName; primaryContact.LastName = contactModel.PrimaryContactLastName; primaryContact.PhoneNumber = contactModel.PrimaryContactPhoneNumber; _context.Update(primaryContact); if (primaryCampaignContact == null) { primaryCampaignContact = new CampaignContact { Contact = primaryContact, Campaign = campaign, ContactType = (int)ContactTypes.Primary }; campaign.CampaignContacts.Add(primaryCampaignContact); _context.Update(primaryCampaignContact); } } return(campaign); }
void CreateUpdateOrDeleteCampaignPrimaryContact(Campaign campaign, IPrimaryContactModel contactModel) { var hasPrimaryContact = campaign.CampaignContacts != null && campaign.CampaignContacts.Any(campaignContact => campaignContact.ContactType == (int)ContactTypes.Primary); var addOrUpdatePrimaryContact = !string.IsNullOrWhiteSpace(string.Concat(contactModel.PrimaryContactEmail?.Trim() + contactModel.PrimaryContactFirstName?.Trim(), contactModel.PrimaryContactLastName?.Trim(), contactModel.PrimaryContactPhoneNumber?.Trim())); // Update existing Primary Campaign Contact if (hasPrimaryContact && addOrUpdatePrimaryContact) { var contactId = campaign.CampaignContacts.Single(campaignContact => campaignContact.ContactType == (int)ContactTypes.Primary).ContactId; var contact = _context.Contacts.Single(c => c.Id == contactId); contact.Email = contactModel.PrimaryContactEmail; contact.FirstName = contactModel.PrimaryContactFirstName; contact.LastName = contactModel.PrimaryContactLastName; contact.PhoneNumber = contactModel.PrimaryContactPhoneNumber; } // Delete existing Primary Campaign Contact else if (hasPrimaryContact && !addOrUpdatePrimaryContact) { var campaignContact = campaign.CampaignContacts.Single(cc => cc.ContactType == (int)ContactTypes.Primary); var contact = _context.Contacts.Single(c => c.Id == campaignContact.ContactId); _context.Remove(contact); _context.Remove(campaignContact); } // Add a Primary Campaign Contact else if (!hasPrimaryContact && addOrUpdatePrimaryContact) { var campaignContact = new CampaignContact() { ContactType = (int)ContactTypes.Primary, Contact = new Contact() { Email = contactModel.PrimaryContactEmail, FirstName = contactModel.PrimaryContactFirstName, LastName = contactModel.PrimaryContactLastName, PhoneNumber = contactModel.PrimaryContactPhoneNumber }, }; if (campaign.CampaignContacts == null) { campaign.CampaignContacts = new List <CampaignContact>(); } campaign.CampaignContacts.Add(campaignContact); _context.Add(campaignContact); } }
public async Task SetPrimaryContactInCampaignSummaryViewModel() { var campaignContact = new CampaignContact { ContactType = (int)ContactTypes.Primary, Contact = new Contact { FirstName = "FirstName", LastName = "LastName", Email = "Email", PhoneNumber = "111-1111-1111" } }; Context.Campaigns.First().CampaignContacts = new List <CampaignContact> { campaignContact }; Context.SaveChanges(); var handler = new CampaignSummaryQueryHandler(Context); var result = await handler.Handle(new CampaignSummaryQuery { CampaignId = 111 }); result.PrimaryContactFirstName.ShouldBe(campaignContact.Contact.FirstName); result.PrimaryContactLastName.ShouldBe(campaignContact.Contact.LastName); result.PrimaryContactEmail.ShouldBe(campaignContact.Contact.Email); result.PrimaryContactPhoneNumber.ShouldBe(campaignContact.Contact.PhoneNumber); }
protected override void LoadTestData() { var testOrg = new Organization { Name = "My Test Campaign", LogoUrl = "http://www.htbox.org/testCampaign", WebUrl = "http://www.htbox.org", Campaigns = new List <Campaign>() }; var testCampaign1 = new Campaign { Name = "Test Campaign 1", ManagingOrganization = testOrg, CampaignContacts = new List <CampaignContact>() }; var testCampaign2 = new Campaign { Name = "Test Campaign 2", ManagingOrganization = testOrg, CampaignContacts = new List <CampaignContact>() }; var primaryCampaignContact1 = new CampaignContact { ContactType = (int)ContactTypes.Primary, Contact = new Contact { Email = "*****@*****.**" } }; var primaryCampaignContact2 = new CampaignContact { ContactType = (int)ContactTypes.Primary, Contact = new Contact() }; var testEvent1 = new Event { Id = 5, Name = "Test Event Name", Campaign = testCampaign1, CampaignId = testCampaign1.Id, StartDateTime = DateTime.UtcNow.AddDays(10), EndDateTime = DateTime.UtcNow.AddDays(10).AddHours(8), Location = new Location { Id = 2 }, RequiredSkills = new List <EventSkill>() }; var testEvent2 = new Event { Id = 7, Name = "Test Event 2", Campaign = testCampaign2, CampaignId = testCampaign2.Id, StartDateTime = DateTime.UtcNow.AddDays(3), EndDateTime = DateTime.UtcNow.AddDays(3).AddHours(4), Location = new Location { Id = 5 }, RequiredSkills = new List <EventSkill>() }; var username1 = $"*****@*****.**"; var user1 = new ApplicationUser { UserName = username1, Email = username1, EmailConfirmed = true }; Context.Users.Add(user1); var username2 = $"*****@*****.**"; var user2 = new ApplicationUser { UserName = username2, Email = username2, EmailConfirmed = true }; Context.Users.Add(user2); testCampaign1.CampaignContacts.Add(primaryCampaignContact1); testCampaign2.CampaignContacts.Add(primaryCampaignContact2); testOrg.Campaigns.Add(testCampaign1); testOrg.Campaigns.Add(testCampaign2); Context.Organizations.Add(testOrg); Context.Events.Add(testEvent1); Context.Events.Add(testEvent2); var testTask1 = new AllReadyTask { Id = 7, Event = testEvent1, EventId = testEvent1.Id // Required Skills? }; var testTask2 = new AllReadyTask { Id = 9, Event = testEvent2, EventId = testEvent2.Id // Required Skills? }; Context.Tasks.Add(testTask1); Context.Tasks.Add(testTask2); Context.SaveChanges(); }