public async Task <DispatchRiderEvent> Dispatch(DispatchRiderEvent evt)
        {
            if (evt.Exception is AggregateException)
            {
                foreach (var agrex in ((AggregateException)evt.Exception).Flatten().InnerExceptions)
                {
                    await Dispatch(agrex, evt.HttpMethod, evt.Route, evt.RequestParams);
                }
                return(evt);
            }
            var endpoint = new Uri(_options.BaseUri, "/1.0/record/exception");

            using (var client = new HttpClient())
            {
                if (!string.IsNullOrEmpty(_options.ApiKey))
                {
                    var authArray = Encoding.UTF8.GetBytes("APIKEYUSER:"******"Basic", Convert.ToBase64String(authArray));
                }
                var req = new ExceptionRequest(evt.Exception);
                req.HttpMethod    = evt.HttpMethod;
                req.Route         = evt.Route;
                req.RequestParams = evt.RequestParams;
                var innerException = evt.Exception.InnerException;
                while (null != innerException)
                {
                    req.AddException(innerException);
                    innerException = innerException.InnerException;
                }
                var json = JsonConvert.SerializeObject(req);
                System.Console.WriteLine("Preparing to send payload");
                System.Console.WriteLine(json);
                using (var content = new StringContent(json, Encoding.UTF8, "application/json"))
                {
                    var request = await client.PostAsync(endpoint, content);
                }
            }
            return(evt);
        }