public async Task <IActionResult> ResetHistory(
            [HttpTrigger(AuthorizationLevel.Anonymous, "delete", Route = "bins/{binId}/reset")] HttpRequest req,
            [DurableClient] IDurableClient client,
            string binId)
        {
            var bin = this._helper.GetBin(binId);

            await client.SignalEntityAsync <IBin>(bin, o => o.Reset());

            var nav = BinNavigation.Parse(binId, req.IsHttps, req.Host.ToString());

            var result = new JsonObjectContentResult(HttpStatusCode.Accepted, nav);

            return(result);
        }
        public async Task <IActionResult> GetHistory(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "bins/{binId}/history")] HttpRequest req,
            [DurableClient] IDurableClient client,
            string binId)
        {
            var bin = this._helper.GetBin(binId);

            var entity = await client.ReadEntityStateAsync <Bin>(bin);

            var payload = entity.EntityState;

            payload.Navigation = BinNavigation.Parse(binId, req.IsHttps, req.Host.ToString());

            var result = new JsonObjectContentResult(HttpStatusCode.OK, payload);

            return(result);
        }
        public async Task <IActionResult> CreateBin(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "bins")] HttpRequest req,
            [DurableClient] IDurableClient client)
        {
            // Create bin reference
            var binId = Guid.NewGuid();
            var bin   = this._helper.GetBin(binId);

            // Create bin
            await client.SignalEntityAsync <IBin>(bin, o => o.Add(null));

            // Create return.
            var nav = BinNavigation.Parse(binId, req.IsHttps, req.Host.ToString());

            var result = new JsonObjectContentResult(HttpStatusCode.Created, nav);

            return(result);
        }