/// <summary>
        /// Handles the transformation exception.
        /// </summary>
        /// <param name="exception">The exception.</param>
        /// <param name="messageToTransform">The <see cref="ReceivedMessage"/> that must be transformed by the transformer.</param>
        /// <returns></returns>
        public async Task <MessagingContext> HandleTransformationException(Exception exception, ReceivedMessage messageToTransform)
        {
            Logger.Error(exception.Message);
            Logger.Trace(exception.StackTrace);

            using (DatastoreContext db = _createContext())
            {
                var repository = new DatastoreRepository(db);
                var service    = new ExceptionService(_configuration, repository, _bodyStore);

                await service.InsertIncomingExceptionAsync(exception, messageToTransform.UnderlyingStream);

                await db.SaveChangesAsync();
            }

            return(new MessagingContext(exception));
        }