// This function will get triggered/executed when a new message is written
        // on an Azure Queue called queue.
        public static void ProcessQueueMessage([QueueTrigger(CloudStorageAssets.AnalyseQueueName)] string message, TextWriter log)
        {
            log.WriteLine($"received message on{CloudStorageAssets.AnalyseQueueName} queue ");
            log.WriteLine(message);
            var repo    = new MailJobRepository.MailJobRepository();
            var handler = new EmailAnalyseHandler(repo, new Config(), new JobLogger(log));

            handler.AnalyseAsync().Wait();
            //var testclass = new DDD2017DemoAnalyser.Class1();
            //testclass.Test();
        }
        public void ShouldBeAbleToWriteASimpleFrigginRecord()
        {
            var repo = new MailJobRepository.MailJobRepository();

            var msgs = new List <EmailInformation>();

            //repo.ClearAllMailMessagesAsync().Wait();
            msgs.Add(new EmailInformation {
                Body = "test", From = "*****@*****.**", TimeOfMail = DateTime.Now, partitionKey = JobPartitionKeys.NewMail
            });
            repo.StoreMailMessagesAsync(msgs).Wait();
            var result = repo.GetMailCollectedToBeAnalysed().Result.FirstOrDefault();

            Assert.IsNotNull(result);
        }
Beispiel #3
0
        public static void ProcessQueueMessage([QueueTrigger(CloudStorageAssets.EmailQueueName)] string message, TextWriter logger)
        {
            var appConfig = new Config();
            var jobLogger = new JobLogger(logger);
            var repo      = new MailJobRepository.MailJobRepository();

            jobLogger.WriteLine($"Message received in the [{CloudStorageAssets.EmailQueueName}], Content: [{message}]");

            var jobCommand = message.ToQueueCommand();

            if (jobCommand == JobCommand.CollectEmail)
            {
                jobLogger.WriteLine($"Collecting email");
                var collector = new MailCollectionProcessor(appConfig, repo, jobLogger);
                collector.CollectMail();
            }
            else
            {
                jobLogger.WriteLine($"Doing nothing as queue command is not one requiring collection action");
            }
        }