private async Task InvokeJobFunction(MqttApplicationMessageReceivedEventArgs mqttApplicationMessageReceivedEventArgs)
        {
            var token = _cancellationTokenSource.Token;

            var mqttInfo = new PublishedMqttMessage(
                mqttApplicationMessageReceivedEventArgs.ApplicationMessage.Topic,
                mqttApplicationMessageReceivedEventArgs.ApplicationMessage.Payload,
                mqttApplicationMessageReceivedEventArgs.ApplicationMessage.QualityOfServiceLevel.ToString(),
                mqttApplicationMessageReceivedEventArgs.ApplicationMessage.Retain);

            var triggeredFunctionData = new TriggeredFunctionData
            {
                TriggerValue = mqttInfo
            };

            try
            {
                var result = await _executor.TryExecuteAsync(triggeredFunctionData, token).ConfigureAwait(false);

                if (!result.Succeeded)
                {
                    if (!token.IsCancellationRequested)
                    {
                        _logger.LogCritical("Error firing function", result.Exception);
                    }
                    token.ThrowIfCancellationRequested();
                }
            }
            catch (Exception e)
            {
                _logger.LogCritical("Error firing function", e);

                // We don't want any function errors to stop the execution. Errors will be logged to Dashboard already.
            }
        }
        public static void AdvancedFunction(
            [MqttTrigger(typeof(ExampleMqttConfigProvider))] PublishedMqttMessage message,
            ILogger log)
        {
            var body = Encoding.UTF8.GetString(message.GetMessage());

            log.LogInformation($"Advanced: message from topic {message.Topic} body: {body}");
        }
        public static void SimpleFunction(
            [MqttTrigger("owntracks/kees/kees01", "owntracks/marleen/marleen01", ConnectionString = "MqttConnection")] PublishedMqttMessage message,
            ILogger log,
            [Table("Locations", Connection = "StorageConnectionAppSetting")] out Trail trail)
        {
            var body = Encoding.UTF8.GetString(message.GetMessage());

            log.LogInformation($"Simple: message from topic {message.Topic} body: {body}");

            trail = JsonConvert.DeserializeObject <Trail>(body);
            trail.PartitionKey = message.Topic.Replace("/", "_");
            trail.RowKey       = DateTime.Now.Ticks.ToString(CultureInfo.CurrentCulture);
            trail.QosLevel     = message.QosLevel;
            trail.Retain       = message.Retain;
        }
 public static void Testert([MqttTrigger(new[] { "test/topic" })] PublishedMqttMessage timer)
 {
     CallCount++;
 }