Example #1
0
        public bool SaveEmailReviewLearnerRecord(ReviewMessageDTO token)
        {
            try
            {
                var html = ReviewDto2LearnerMessageHtml(token);

                if (String.IsNullOrEmpty(html))
                {
                    return(false);
                }

                var entity = token.Learner.ReviewDto2EmailMessage(FROM, REVIEW_LEARNER_SUBJECT, html);

                EmailMessageRepository.Add(entity);

                EmailMessageRepository.UnitOfWork.CommitAndRefreshChanges();

                return(true);
            }
            catch (Exception ex)
            {
                Logger.Error("Save review author email record", token.Author.id, ex, CommonEnums.LoggerObjectTypes.Email);
                return(false);
            }
        }
        public void TestInitialize()
        {
            _context = new DbTestContext(Settings.Default.MainConnectionString);
            _fixture = new Fixture();

            _messages = new EmailMessageRepository(new SqlProcedureExecutor(Settings.Default.MainConnectionString));
        }
Example #3
0
        public bool SaveEmailNotificationRecord(NotificationMessageDTO token)
        {
            try
            {
                var html = NotificationDto2Html(token);

                if (String.IsNullOrEmpty(html))
                {
                    return(false);
                }

                var entity = token.NotificationDto2EmailMessage(FROM, DISCUSSION_SUBJECT, html);

                EmailMessageRepository.Add(entity);

                EmailMessageRepository.UnitOfWork.CommitAndRefreshChanges();

                return(true);
            }
            catch (Exception ex)
            {
                Logger.Error("Save email record", token.UserId, ex, CommonEnums.LoggerObjectTypes.Email);
                return(false);
            }
        }
Example #4
0
        /// <summary>
        /// A simple function that takes a string and does a ToUpper
        /// </summary>
        /// <param name="input"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public async Task FunctionHandler(string input, ILambdaContext context)
        {
            IAmazonSQS              sqsClient              = new AmazonSQSClient();
            ISqsAdapter             sqsAdapter             = new SqsAdapter(sqsClient, "");
            IAmazonS3               s3Client               = new AmazonS3Client();
            IS3Adapter              s3Adapter              = new S3Adapter(s3Client);
            IEmailMessageRepository emailMessageRepository = new EmailMessageRepository(sqsAdapter, s3Adapter);

            IAmazonSimpleEmailService sesClient   = new AmazonSimpleEmailServiceClient();
            IEmailDeliveryConfig      emailConfig = new EmailDeliveryConfig()
            {
                FromAddress = ""
            };
            ISESAdapter           sesAdapter      = new SESAdapter(sesClient, emailConfig);
            IEmailMessageDelivery messageDelivery = new EmailMessageDelivery(sesAdapter);
            IEmailQueueProcessor  emailProcessor  = new EmailQueueProcessor(emailMessageRepository, messageDelivery);

            var emptyProcesses = 0;

            while (emptyProcesses <= 3 && context.RemainingTime > TimeSpan.FromSeconds(30))
            {
                var count = await emailProcessor.ProcessEmailMessages();

                if (count == 0)
                {
                    emptyProcesses++;
                }
            }
        }
Example #5
0
        private static DefaultEmailingProcessor GetDefaultEmailingProcessor(
            int partitionId,
            ISqlProcedureExecutor executor,
            IMessageBuilder messageBuilder)
        {
            var emails     = new EmailMessageRepository(executor);
            var mailSender = new DbMailSender(partitionId, emails, new Serializer());

            return(new DefaultEmailingProcessor(mailSender, messageBuilder));
        }
Example #6
0
        private static void RunMailSenderJob(string connectionString, int partitionId)
        {
            var serializer        = new Serializer();
            var executor          = new SqlProcedureExecutor(connectionString);
            var messages          = new EmailMessageRepository(executor);
            var mailConfiguration = new MailConfiguration();
            var sender            = new MailSender(mailConfiguration);

            var job = new MailSenderJob(messages, partitionId, sender, serializer);

            job.Work();
        }
Example #7
0
        public bool SendEmailWithAttachment(long emailId, MemoryStream stream, out string error)
        {
            var entity = EmailMessageRepository.GetById(emailId);

            if (entity != null)
            {
                return(SendRawEmail(entity, stream, out error));
            }

            error = "email message entity not found";

            return(false);
        }
Example #8
0
        public bool SendEmail(long emailId, out string error)
        {
            var entity = EmailMessageRepository.GetById(emailId);

            if (entity != null)
            {
                return(SendEmail(entity, out error));
            }

            error = "email message entity not found";

            return(false);
        }
Example #9
0
        private void SaveMessage(EmailMessageDTO messageToken, out long emailId)
        {
            try
            {
                var entity = messageToken.Dto2EmailMesageEntity();

                EmailMessageRepository.Add(entity);

                EmailMessageRepository.UnitOfWork.CommitAndRefreshChanges();

                emailId = entity.EmailId;
            }
            catch (Exception ex)
            {
                emailId = -1;
                Logger.Error("save email message", null, ex, CommonEnums.LoggerObjectTypes.Email);
            }
        }
Example #10
0
        private static void RunEuroCourseJob(string connectionString)
        {
            var serializer             = new Serializer();
            var executor               = new SqlProcedureExecutor(connectionString);
            var settings               = new SettingRepository(executor, serializer);
            var httpClient             = new HttpClient();
            var emailMessageRepository = new EmailMessageRepository(executor);
            var mailSender             = new DbMailSender(PartitionIdForOtherMails, emailMessageRepository, serializer);
            var courseSource           = new CourseSourceFailPolicy(
                new CourseSourceRetryPolicy(
                    new CourseSource(httpClient),
                    CourseSourceAttempts,
                    JobsLogger,
                    CourseSourceRetryPolicyPeriod),
                mailSender,
                EmailsHelper.DefaultFrom,
                EmailsHelper.SupportEmail);

            new EuroCourseJob(settings, courseSource, serializer, PreviousRunEuroCourseJobRubTime).Work();
        }
Example #11
0
 public List <NotificationMessageDTO> GetMessageNotifications(long messageId)
 {
     return(EmailMessageRepository.GetMessageNotifications(messageId).Select(x => x.Entity2NotificationMessageDto()).ToList());
 }