/// <summary>Called when authorization is required.</summary>
        /// <param name="filterContext">An object that encapsulates the information that is required in order to authorize access to the transfer action.</param>
        public void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext == null)
            {
                throw new ArgumentNullException(nameof(filterContext));
            }

            if (!filterContext.IsTransferAction())
            {
                throw new InvalidOperationException(string.Format("The action '{0}' is accessible only by a transfer request.", filterContext.ActionDescriptor.ActionName));
            }
        }