/// <summary>
        /// Creates a <see cref="INotificationGatewayMethod"/>
        /// </summary>
        /// <param name="gatewayResource">The <see cref="IGatewayResource"/> implemented by this method</param>
        /// <param name="name">The name of the notification method</param>
        /// <param name="serviceCode"></param>
        /// <returns></returns>
        public override INotificationGatewayMethod CreateNotificationMethod(IGatewayResource gatewayResource, string name, string serviceCode)
        {
            var attempt = GatewayProviderService.CreateNotificationMethodWithKey(GatewayProviderSettings.Key, name, serviceCode);

            if (attempt.Success)
            {
                return(new SmtpNotificationGatewayMethod(GatewayProviderService, attempt.Result, GatewayProviderSettings.ExtendedData));
            }

            LogHelper.Error <NotificationGatewayProviderBase>(string.Format("Failed to create NotificationGatewayMethod GatewayResource: {0} , {1}", gatewayResource.Name, gatewayResource.ServiceCode), attempt.Exception);

            throw attempt.Exception;
        }