diff --git a/ZeroBounceSDK/ZeroBounce.cs b/ZeroBounceSDK/ZeroBounce.cs index a314c8a..5607602 100644 --- a/ZeroBounceSDK/ZeroBounce.cs +++ b/ZeroBounceSDK/ZeroBounce.cs @@ -155,7 +155,27 @@ public class SendFileOptions public void ScoringSendFile(string filePath, SendFileOptions options, Action successCallback, Action failureCallback) { - _SendFile(true, filePath, options, successCallback, failureCallback); + try + { + var fileName = Path.GetFileName(filePath); + var file = File.OpenRead(filePath); + _SendFile(true, file, fileName, options, successCallback, failureCallback); + } + catch (Exception e) + { + failureCallback(e.Message); + } + } + + /// + /// The scoringSendfile API allows user to send a file for bulk email validation + /// The success callback function, called with a ZBSendFileResponse object + /// The failure callback function, called with a string error message + /// + public void ScoringSendFile(Stream file, string fileName, SendFileOptions options, + Action successCallback, Action failureCallback) + { + _SendFile(true, file, fileName, options, successCallback, failureCallback); } /// @@ -166,10 +186,30 @@ public void ScoringSendFile(string filePath, SendFileOptions options, public void SendFile(string filePath, SendFileOptions options, Action successCallback, Action failureCallback) { - _SendFile(false, filePath, options, successCallback, failureCallback); + try + { + var fileName = Path.GetFileName(filePath); + var file = File.OpenRead(filePath); + _SendFile(false, file, fileName, options, successCallback, failureCallback); + } + catch (Exception e) + { + failureCallback(e.Message); + } } - private async void _SendFile(bool scoring, string filePath, SendFileOptions options, + /// + /// The sendfile API allows user to send a file for bulk email validation + /// The success callback function, called with a ZBSendFileResponse object + /// The failure callback function, called with a string error message + /// + public void SendFile(Stream file, string fileName, SendFileOptions options, + Action successCallback, Action failureCallback) + { + _SendFile(false, file, fileName, options, successCallback, failureCallback); + } + + private async void _SendFile(bool scoring, Stream file, string fileName, SendFileOptions options, Action successCallback, Action failureCallback) { if (InvalidApiKey(failureCallback)) return; @@ -177,8 +217,7 @@ private async void _SendFile(bool scoring, string filePath, SendFileOptions opti try { var content = new MultipartFormDataContent(); - var file = File.OpenRead(filePath); - content.Add(new StreamContent(file), "file", Path.GetFileName(filePath)); + content.Add(new StreamContent(file), "file", fileName); content.Add(new StringContent(_apiKey), "api_key");