public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "FoodLog/{date}")] HttpRequest req,
            ILogger log,
            string date)
        {
            IActionResult result;

            try
            {
                bool isDateValid = _dateValidator.IsNutritionDateValid(date);
                if (isDateValid == false)
                {
                    result = new BadRequestResult();
                    return(result);
                }

                log.LogInformation($"Attempting to manually retrieve Food Log for {date}");
                var foodResponse = await _fitbitApiService.GetFoodLogs(date);

                if (foodResponse == null)
                {
                    result = new NotFoundResult();
                    return(result);
                }

                log.LogInformation("Mapping API Response to Nutrition object");
                var nutrition = new mdl.Nutrition();
                nutrition.NutritionDate = date;
                _mapper.Map(foodResponse, nutrition);

                log.LogInformation("Sending mapped Nutrition Log to Service Bus");
                await _serviceBusHelpers.SendMessageToTopic(_configuration["NutritionTopic"], nutrition);

                result = new OkResult();
            }
            catch (Exception ex)
            {
                log.LogError($"Exception thrown in {nameof(RetrieveManualFoodLog)}: {ex.Message}");
                await _serviceBusHelpers.SendMessageToQueue(_configuration["ExceptionQueue"], ex);

                result = new StatusCodeResult(StatusCodes.Status500InternalServerError);
            }

            return(result);
        }