public void CanCreateANewEvent() { var eventTypeRepository = MockRepository.GenerateStub<IEventRepository>(); var permissionRepository = new PermissionRepository(); var personRepository = new PersonRepository(permissionRepository, new ChurchRepository()); var usernamePasswordRepository = new UsernamePasswordRepository(permissionRepository); var groupRepository = new GroupRepository(); var messageRepository = new MessageRepository(); var messageRecepientRepository = new MessageRecepientRepository(); var messageAttachmentRepository = new MessageAttachmentRepository(); var emailSender = new EmailSender(messageRepository, messageRecepientRepository, messageAttachmentRepository, personRepository); var churchEmailTemplatesRepository = new ChurchEmailTemplatesRepository(); var emailContentRepository = new EmailContentRepository(); var emailContentService = new EmailContentService(emailContentRepository); var emailService = new EmailService(usernamePasswordRepository, personRepository, groupRepository, emailSender, emailContentService, churchEmailTemplatesRepository, permissionRepository); IEventService eventTypeService = new EventService(eventTypeRepository, emailService, new BirthdayAndAniversaryRepository()); var newEvent = new EventDto(); eventTypeRepository .Expect(e => e.SaveItem(newEvent)) .Return(1); var result = eventTypeService.CreateEvent(newEvent); Assert.That(result, Is.EqualTo(1)); }
public void CanGetCreatedEvent() { var eventRepository = MockRepository.GenerateStub<IEventRepository>(); var expectedEventDto = new EventDto { EventId = 1 }; eventRepository .Expect(et => et.GetItem(1)) .Return(expectedEventDto); var permissionRepository = new PermissionRepository(); var personRepository = new PersonRepository(permissionRepository, new ChurchRepository()); var usernamePasswordRepository = new UsernamePasswordRepository(permissionRepository); var groupRepository = new GroupRepository(); var messageRepository = new MessageRepository(); var messageRecepientRepository = new MessageRecepientRepository(); var messageAttachmentRepository = new MessageAttachmentRepository(); var emailSender = new EmailSender(messageRepository, messageRecepientRepository, messageAttachmentRepository, personRepository); var churchEmailTemplatesRepository = new ChurchEmailTemplatesRepository(); var emailContentRepository = new EmailContentRepository(); var emailContentService = new EmailContentService(emailContentRepository); var emailService = new EmailService(usernamePasswordRepository, personRepository, groupRepository, emailSender, emailContentService, churchEmailTemplatesRepository, permissionRepository); IEventService eventService = new EventService(eventRepository, emailService, new BirthdayAndAniversaryRepository()); var eventDto = eventService.GetEvent(1); Assert.That(eventDto, Is.EqualTo(expectedEventDto)); }
public void CanGetListOfPersonEventsForAGroup() { var eventRepository = MockRepository.GenerateStub<IEventRepository>(); var eventList = new List<PersonEventDto> { new PersonEventDto(), new PersonEventDto(), new PersonEventDto() }; var currentPerson = new Person {Permissions = new List<int> {57}}; eventRepository .Expect(e => e.GetPersonEventsForGroup(1, currentPerson)) .Return(eventList); var permissionRepository = new PermissionRepository(); var personRepository = new PersonRepository(permissionRepository, new ChurchRepository()); var usernamePasswordRepository = new UsernamePasswordRepository(permissionRepository); var groupRepository = new GroupRepository(); var messageRepository = new MessageRepository(); var messageRecepientRepository = new MessageRecepientRepository(); var messageAttachmentRepository = new MessageAttachmentRepository(); var emailSender = new EmailSender(messageRepository, messageRecepientRepository, messageAttachmentRepository, personRepository); var churchEmailTemplatesRepository = new ChurchEmailTemplatesRepository(); var emailContentRepository = new EmailContentRepository(); var emailContentService = new EmailContentService(emailContentRepository); var emailService = new EmailService(usernamePasswordRepository, personRepository, groupRepository, emailSender, emailContentService, churchEmailTemplatesRepository, permissionRepository); IEventService eventService = new EventService(eventRepository, emailService, new BirthdayAndAniversaryRepository()); var sut = eventService.GetPersonEventsForGroup(1, currentPerson); Assert.That(sut.Count(), Is.EqualTo(3)); }
public void GivenAMessage_WhenSaveMessage_ThenMessageShouldBeSaved() { var messageRepository = new MessageRepository(); var messageRecepientRepository = new MessageRecepientRepository(); var messageId = messageRepository.SaveMessage(1, "test subject", "test body", "Email"); messageRecepientRepository.SaveMessageRecepient(messageId, new[] { 1, 3 }, "Success", string.Empty); Assert.That(DatabaseIsInExpectedState()); }
public GroupEventsController() { var birthdayRepository = new BirthdayAndAniversaryRepository(); var permissionRepository = new PermissionRepository(); var personRepository = new PersonRepository(permissionRepository, new ChurchRepository()); var usernamePasswordRepository = new UsernamePasswordRepository(permissionRepository); var groupRepository = new GroupRepository(); var messageRepository = new MessageRepository(); var messageRecepientRepository = new MessageRecepientRepository(); var messageAttachmentRepository = new MessageAttachmentRepository(); var emailSender = new EmailSender(messageRepository, messageRecepientRepository, messageAttachmentRepository, personRepository); var churchEmailTemplatesRepository = new ChurchEmailTemplatesRepository(); var emailContentRepository = new EmailContentRepository(); var emailContentService = new EmailContentService(emailContentRepository); var emailService = new EmailService(usernamePasswordRepository, personRepository, groupRepository, emailSender, emailContentService, churchEmailTemplatesRepository, permissionRepository); var eventRepository = new EventRepository(birthdayRepository); _eventService = new EventService(eventRepository, emailService, birthdayRepository); }
public HomeController() { var permissionRepository = new PermissionRepository(); var churchRepository = new ChurchRepository(); _personRepository = new PersonRepository(permissionRepository, churchRepository); var birthdayRepository = new BirthdayAndAniversaryRepository(); var personRepository = new PersonRepository(permissionRepository, new ChurchRepository()); var usernamePasswordRepository = new UsernamePasswordRepository(permissionRepository); var groupRepository = new GroupRepository(); var messageRepository = new MessageRepository(); var messageRecepientRepository = new MessageRecepientRepository(); var messageAttachmentRepository = new MessageAttachmentRepository(); var emailSender = new EmailSender(messageRepository, messageRecepientRepository, messageAttachmentRepository, personRepository); var churchEmailTemplatesRepository = new ChurchEmailTemplatesRepository(); var emailContentRepository = new EmailContentRepository(); var emailContentService = new EmailContentService(emailContentRepository); _emailService = new EmailService(usernamePasswordRepository, personRepository, groupRepository, emailSender, emailContentService, churchEmailTemplatesRepository, permissionRepository); var eventRepository = new EventRepository(birthdayRepository); _eventService = new EventService(eventRepository, _emailService, birthdayRepository); _personGroupRepository = new PersonGroupRepository(_personRepository); _usernamePasswordRepository = new UsernamePasswordRepository(permissionRepository); _photoRepository = new PhotoRepository(); _photoServices = new PhotoServices(); _personService = new PersonService( _personRepository, new PersonGroupRepository(_personRepository), permissionRepository, new PersonRoleRepository(), new PersonOptionalFieldRepository(), new RelationshipRepository(_personRepository), new ChurchMatcherRepository(), new GroupRepository(), new FamilyRepository(_photoRepository), _emailService, new AddressRepository(), _photoRepository ); }
public IEnumerable<string> Get() { var returnMessages = new List<string>(); using (var pop3Client = new Pop3Client()) { var messages = GetNewMessages(pop3Client); var messageCount = messages.Count(); if (messageCount > 0) { IMessageRepository messageRepository = new MessageRepository(); IMessageRecepientRepository messageRecepientRepository = new MessageRecepientRepository(); IMessageAttachmentRepository messageAttachmentRepository = new MessageAttachmentRepository(); IPermissionRepository permissionRepository = new PermissionRepository(); IChurchRepository churchRepository = new ChurchRepository(); IPersonRepository personRepository = new PersonRepository(permissionRepository, churchRepository); var emailSender = new EmailSender(messageRepository, messageRecepientRepository, messageAttachmentRepository, personRepository); foreach (var m in messages) { var mm = m.Value.ToMailMessage(); var regex = new Regex(@"##([0-9]*)##"); var matches = regex.Matches(mm.Body); if (matches.Count > 0 && matches[0].Groups.Count > 1) { try { int messageId; if (int.TryParse(matches[0].Groups[1].Value, out messageId)) { var originalSender = messageRepository.GetSender(messageId); if (originalSender != null) { var originalReceiver = personRepository.FetchPersonIdsFromEmailAddress(mm.From.Address, originalSender.ChurchId); var fromPersonId = originalSender.PersonId; if (originalReceiver.Any()) { fromPersonId = originalReceiver.First(); } returnMessages.Add(string.Format("Forwarding email on to {0}", originalSender.Email)); emailSender.SendEmail(mm.Subject, mm.Body, Username, originalSender.Email, Username, Password, fromPersonId, originalSender.ChurchId, mm.Attachments); } if (!DeleteMessageByMessageId(pop3Client, m.Key)) { var exception = new Exception("Cannot delete message " + mm.Subject + " " + mm.From); emailSender.SendExceptionEmailAsync(exception); } //pop3Client.DeleteMessage(count + 1); } } catch (Exception errSending) { returnMessages.Add(errSending.Message); emailSender.SendExceptionEmailAsync(errSending); } } } } } return returnMessages; }
public string GetEmails() { var returnMessages = new List<string>(); using (var pop3Client = new Pop3Client()) { var messages = GetNewMessages(pop3Client); var messageCount = messages.Count(); if (messageCount > 0) { IMessageRepository messageRepository = new MessageRepository(); IMessageRecepientRepository messageRecepientRepository = new MessageRecepientRepository(); IMessageAttachmentRepository messageAttachmentRepository = new MessageAttachmentRepository(); IPermissionRepository permissionRepository = new PermissionRepository(); IChurchRepository churchRepository = new ChurchRepository(); IPersonRepository personRepository = new PersonRepository(permissionRepository, churchRepository); IEmailSender emailSender = new EmailSender(messageRepository, messageRecepientRepository, messageAttachmentRepository, personRepository); for (var count = 0; count < messageCount; count++) { var mm = messages[count].ToMailMessage(); var regex = new Regex(@"##([0-9]*)##"); var matches = regex.Matches(mm.Body); if (matches.Count > 0 && matches[0].Groups.Count > 1) { try { int messageId; if (int.TryParse(matches[0].Groups[1].Value, out messageId)) { var originalSender = messageRepository.GetSender(messageId); if (originalSender != null) { var originalReceiver = personRepository.FetchPersonIdsFromEmailAddress(mm.From.Address, originalSender.ChurchId); var fromPersonId = originalSender.PersonId; if (originalReceiver.Any()) { fromPersonId = originalReceiver.First(); } returnMessages.Add(string.Format("Forwarding reply from {0} for messageId {1} on to {2}", fromPersonId, messageId, originalSender.Email)); emailSender.SendEmail(mm.Subject, mm.Body, Username, originalSender.Email, Username, Password, fromPersonId, originalSender.ChurchId, mm.Attachments); } pop3Client.DeleteMessage(count + 1); } } catch (Exception errSending) { returnMessages.Add(errSending.Message); emailSender.SendExceptionEmailAsync(errSending); } } } } } if (!returnMessages.Any()) { return "No replies found"; } var returnMessage = returnMessages.Aggregate(string.Empty, (current, m) => current + (m + "<br/>")); _emailService.SendSystemEmail("Replies found", returnMessage); return returnMessage; }