public PowerofficeQueueTester(ITestOutputHelper output) : base(output)
 {
     // It's safe to use .Result in the tests.
     Dispatcher = PowerofficeMessageDispatcher.Create(
         OutputLogger,
         TestWebcrmClientFactory,
         TestTypedEnvironment.DatabaseCredentials,
         TestPowerofficeClientFactory).Result;
     Queue = PowerofficeQueue.Create(OutputLogger, TestTypedEnvironment.AzureWebJobsStorage).Result;
 }
Ejemplo n.º 2
0
        public async Task TestHandleMessage(string queueItem)
        {
            string formattedQueueItem  = queueItem.Replace("{TIMESTAMP}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            var    upsertPersonMessage = JsonConvert.DeserializeObject <PowerofficeQueueMessage>(formattedQueueItem);
            var    dispatcher          = await PowerofficeMessageDispatcher.Create(
                OutputLogger,
                TestWebcrmClientFactory,
                TestTypedEnvironment.DatabaseCredentials,
                TestPowerofficeClientFactory);

            await dispatcher.HandleDequeuedMessage(upsertPersonMessage);
        }
        public static async Task Run(
            [QueueTrigger(Constants.PowerofficeQueueName)] string queueItem,
            ILogger logger)
        {
            logger.LogTrace($"Dequeuing message from the '{Constants.PowerofficeQueueName}' queue.");

            try
            {
                var webcrmClientFactory      = new WebcrmClientFactory(logger, TypedEnvironment.WebcrmApiBaseUrl);
                var powerofficeClientFactory = new PowerofficeClientFactory(TypedEnvironment.PowerofficeApiSettings);
                var dispatcher = await PowerofficeMessageDispatcher.Create(logger, webcrmClientFactory, TypedEnvironment.DatabaseCredentials, powerofficeClientFactory);

                var message = JsonConvert.DeserializeObject <PowerofficeQueueMessage>(queueItem);
                await dispatcher.HandleDequeuedMessage(message);
            }
            catch (SwaggerException ex)
            {
                SwaggerExceptionLogger.Log(ex);
            }
        }