public static async Task <HttpResponseMessage> Run(HttpRequestMessage req, string shortCode)
        {
            var service = new ShortenerService();

            string longUrl = await service.GetLongUrlAsync(shortCode);

            if (string.IsNullOrEmpty(longUrl))
            {
                return(req.CreateResponse(HttpStatusCode.NotFound));
            }

            // analytics
            string clientIp = GetClientIpAddress(req);
            await service.LogView(shortCode, longUrl, req.Headers.UserAgent.ToString(), clientIp);

            var response = req.CreateResponse(HttpStatusCode.Redirect);

            response.Headers.Add("Location", longUrl);
            return(response);
        }