public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous,
                         "get", "post", "put", "patch", "delete", "head", "options", "trace",
                         Route = "{binId}")] HttpRequest request,
            [DurableClient] IDurableClient client,
            string binId,
            ILogger log)
        {
            try
            {
                log.LogInformation(new EventId(100), "{BinId}, {Message}", binId, $"Request received for bin '{binId}'.");
                if (!RequestBinService.IsBinIdValid(binId, out var validationMessage))
                {
                    log.LogError(new EventId(191), "{BinId}, {Message}", binId, $"Invalid Bin Id '{binId}'.");
                    return(new BadRequestObjectResult(validationMessage));
                }
                var requestDescription = await RequestBinService.GetRequestDescriptionAsync(request);

                var encodedBinId = RequestBinService.EncodeBinId(binId);

                //Send a one-way message to an entity (via an abstracted queue) using a proxy object for type-safe calls.
                await client.SignalEntityAsync <IRequestBin>(encodedBinId, x => x.Add(requestDescription));

                log.LogInformation(new EventId(110), "{BinId}, {Message}", binId, $"Request for bin '{binId}' stored.");
                return(new OkResult());
            }
            catch (Exception ex)
            {
                log.LogError(new EventId(190), ex, "{BinId}, {Message}", binId, $"Error occurred while trying to persist request into bin: '{binId}'.");
                throw;
            }
        }