Skip to content

Commit e9dbe88

Browse files
Merge pull request #7 from aspose-email-cloud/develop
Develop
2 parents 6f13888 + 9a6e8b6 commit e9dbe88

22 files changed

+1267
-1
lines changed

Api/EmailApi.cs

Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3398,6 +3398,224 @@ await apiInvoker.InvokeApiAsync(
33983398
}
33993399
#endif
34003400

3401+
/// <summary>
3402+
/// Discover email accounts by email address. Does not validate discovered accounts.
3403+
/// </summary>
3404+
/// <param name="request">Request. <see cref="DiscoverEmailConfigRequest" /></param>
3405+
/// <returns><see cref="EmailAccountConfigList"/></returns>
3406+
public EmailAccountConfigList DiscoverEmailConfig(Model.Requests.DiscoverEmailConfigRequest request)
3407+
{
3408+
// verify the required parameter 'address' is set
3409+
if (request.address == null)
3410+
{
3411+
throw new ApiException(400,
3412+
"Missing required parameter 'address' when calling DiscoverEmailConfig");
3413+
}
3414+
3415+
// create path and map variables
3416+
var resourcePath = this.configuration.GetApiRootUrl() + "/email/config/discover";
3417+
resourcePath = Regex
3418+
.Replace(resourcePath, "\\*", string.Empty)
3419+
.Replace("&amp;", "&")
3420+
.Replace("/?", "?");
3421+
resourcePath = UrlHelper.AddQueryParameterToUrl(resourcePath, "address", request.address);
3422+
resourcePath = UrlHelper.AddQueryParameterToUrl(resourcePath, "fastProcessing", request.fastProcessing);
3423+
var response = apiInvoker.InvokeApi(
3424+
resourcePath,
3425+
"GET",
3426+
null,
3427+
null,
3428+
null);
3429+
if (response != null)
3430+
{
3431+
return SerializationHelper.Deserialize<EmailAccountConfigList>(response);
3432+
}
3433+
3434+
return null;
3435+
}
3436+
3437+
#if (NET452 || NETSTANDARD2_0)
3438+
/// <summary>
3439+
/// Discover email accounts by email address. Does not validate discovered accounts.
3440+
/// </summary>
3441+
/// <param name="request">Request. <see cref="DiscoverEmailConfigRequest" /></param>
3442+
/// <returns><see cref="EmailAccountConfigList"/></returns>
3443+
public async Task<EmailAccountConfigList> DiscoverEmailConfigAsync(Model.Requests.DiscoverEmailConfigRequest request)
3444+
{
3445+
// verify the required parameter 'address' is set
3446+
if (request.address == null)
3447+
{
3448+
throw new ApiException(400,
3449+
"Missing required parameter 'address' when calling DiscoverEmailConfig");
3450+
}
3451+
3452+
// create path and map variables
3453+
var resourcePath = this.configuration.GetApiRootUrl() + "/email/config/discover";
3454+
resourcePath = Regex
3455+
.Replace(resourcePath, "\\*", string.Empty)
3456+
.Replace("&amp;", "&")
3457+
.Replace("/?", "?");
3458+
resourcePath = UrlHelper.AddQueryParameterToUrl(resourcePath, "address", request.address);
3459+
resourcePath = UrlHelper.AddQueryParameterToUrl(resourcePath, "fastProcessing", request.fastProcessing);
3460+
var response = await apiInvoker.InvokeApiAsync(
3461+
resourcePath,
3462+
"GET",
3463+
null,
3464+
null,
3465+
null);
3466+
if (response != null)
3467+
{
3468+
return SerializationHelper.Deserialize<EmailAccountConfigList>(response);
3469+
}
3470+
3471+
return null;
3472+
}
3473+
#endif
3474+
3475+
/// <summary>
3476+
/// Discover email accounts by email address. Validates discovered accounts using OAuth 2.0.
3477+
/// </summary>
3478+
/// <param name="request">Request. <see cref="DiscoverEmailConfigOauthRequest" /></param>
3479+
/// <returns><see cref="EmailAccountConfigList"/></returns>
3480+
public EmailAccountConfigList DiscoverEmailConfigOauth(Model.Requests.DiscoverEmailConfigOauthRequest request)
3481+
{
3482+
// verify the required parameter 'rq' is set
3483+
if (request.rq == null)
3484+
{
3485+
throw new ApiException(400,
3486+
"Missing required parameter 'rq' when calling DiscoverEmailConfigOauth");
3487+
}
3488+
3489+
// create path and map variables
3490+
var resourcePath = this.configuration.GetApiRootUrl() + "/email/config/discover/oauth";
3491+
resourcePath = Regex
3492+
.Replace(resourcePath, "\\*", string.Empty)
3493+
.Replace("&amp;", "&")
3494+
.Replace("/?", "?");
3495+
var postBody = SerializationHelper.Serialize(request.rq); // http body (model) parameter
3496+
var response = apiInvoker.InvokeApi(
3497+
resourcePath,
3498+
"POST",
3499+
postBody,
3500+
null,
3501+
null);
3502+
if (response != null)
3503+
{
3504+
return SerializationHelper.Deserialize<EmailAccountConfigList>(response);
3505+
}
3506+
3507+
return null;
3508+
}
3509+
3510+
#if (NET452 || NETSTANDARD2_0)
3511+
/// <summary>
3512+
/// Discover email accounts by email address. Validates discovered accounts using OAuth 2.0.
3513+
/// </summary>
3514+
/// <param name="request">Request. <see cref="DiscoverEmailConfigOauthRequest" /></param>
3515+
/// <returns><see cref="EmailAccountConfigList"/></returns>
3516+
public async Task<EmailAccountConfigList> DiscoverEmailConfigOauthAsync(Model.Requests.DiscoverEmailConfigOauthRequest request)
3517+
{
3518+
// verify the required parameter 'rq' is set
3519+
if (request.rq == null)
3520+
{
3521+
throw new ApiException(400,
3522+
"Missing required parameter 'rq' when calling DiscoverEmailConfigOauth");
3523+
}
3524+
3525+
// create path and map variables
3526+
var resourcePath = this.configuration.GetApiRootUrl() + "/email/config/discover/oauth";
3527+
resourcePath = Regex
3528+
.Replace(resourcePath, "\\*", string.Empty)
3529+
.Replace("&amp;", "&")
3530+
.Replace("/?", "?");
3531+
var postBody = SerializationHelper.Serialize(request.rq); // http body (model) parameter
3532+
var response = await apiInvoker.InvokeApiAsync(
3533+
resourcePath,
3534+
"POST",
3535+
postBody,
3536+
null,
3537+
null);
3538+
if (response != null)
3539+
{
3540+
return SerializationHelper.Deserialize<EmailAccountConfigList>(response);
3541+
}
3542+
3543+
return null;
3544+
}
3545+
#endif
3546+
3547+
/// <summary>
3548+
/// Discover email accounts by email address. Validates discovered accounts using login and password.
3549+
/// </summary>
3550+
/// <param name="request">Request. <see cref="DiscoverEmailConfigPasswordRequest" /></param>
3551+
/// <returns><see cref="EmailAccountConfigList"/></returns>
3552+
public EmailAccountConfigList DiscoverEmailConfigPassword(Model.Requests.DiscoverEmailConfigPasswordRequest request)
3553+
{
3554+
// verify the required parameter 'rq' is set
3555+
if (request.rq == null)
3556+
{
3557+
throw new ApiException(400,
3558+
"Missing required parameter 'rq' when calling DiscoverEmailConfigPassword");
3559+
}
3560+
3561+
// create path and map variables
3562+
var resourcePath = this.configuration.GetApiRootUrl() + "/email/config/discover/password";
3563+
resourcePath = Regex
3564+
.Replace(resourcePath, "\\*", string.Empty)
3565+
.Replace("&amp;", "&")
3566+
.Replace("/?", "?");
3567+
var postBody = SerializationHelper.Serialize(request.rq); // http body (model) parameter
3568+
var response = apiInvoker.InvokeApi(
3569+
resourcePath,
3570+
"POST",
3571+
postBody,
3572+
null,
3573+
null);
3574+
if (response != null)
3575+
{
3576+
return SerializationHelper.Deserialize<EmailAccountConfigList>(response);
3577+
}
3578+
3579+
return null;
3580+
}
3581+
3582+
#if (NET452 || NETSTANDARD2_0)
3583+
/// <summary>
3584+
/// Discover email accounts by email address. Validates discovered accounts using login and password.
3585+
/// </summary>
3586+
/// <param name="request">Request. <see cref="DiscoverEmailConfigPasswordRequest" /></param>
3587+
/// <returns><see cref="EmailAccountConfigList"/></returns>
3588+
public async Task<EmailAccountConfigList> DiscoverEmailConfigPasswordAsync(Model.Requests.DiscoverEmailConfigPasswordRequest request)
3589+
{
3590+
// verify the required parameter 'rq' is set
3591+
if (request.rq == null)
3592+
{
3593+
throw new ApiException(400,
3594+
"Missing required parameter 'rq' when calling DiscoverEmailConfigPassword");
3595+
}
3596+
3597+
// create path and map variables
3598+
var resourcePath = this.configuration.GetApiRootUrl() + "/email/config/discover/password";
3599+
resourcePath = Regex
3600+
.Replace(resourcePath, "\\*", string.Empty)
3601+
.Replace("&amp;", "&")
3602+
.Replace("/?", "?");
3603+
var postBody = SerializationHelper.Serialize(request.rq); // http body (model) parameter
3604+
var response = await apiInvoker.InvokeApiAsync(
3605+
resourcePath,
3606+
"POST",
3607+
postBody,
3608+
null,
3609+
null);
3610+
if (response != null)
3611+
{
3612+
return SerializationHelper.Deserialize<EmailAccountConfigList>(response);
3613+
}
3614+
3615+
return null;
3616+
}
3617+
#endif
3618+
34013619
/// <summary>
34023620
/// Download file
34033621
/// </summary>

Aspose.Email-Cloud.Tests/Tests/TestFixture.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ await emailApi.GetCalendarAsync(new GetCalendarRequest(calendarFile, folder,
165165
/// Test name gender detection
166166
/// </summary>
167167
[Test]
168+
[Pipeline]
168169
public async Task AiNameGenderizeTest()
169170
{
170171
var result =
@@ -177,6 +178,7 @@ public async Task AiNameGenderizeTest()
177178
/// Test name formatting
178179
/// </summary>
179180
[Test]
181+
[Pipeline]
180182
public async Task AiNameFormatTest()
181183
{
182184
var result = await emailApi.AiNameFormatAsync(
@@ -188,6 +190,7 @@ public async Task AiNameFormatTest()
188190
/// Name match test.
189191
/// </summary>
190192
[Test]
193+
[Pipeline]
191194
public async Task AiNameMatchTest()
192195
{
193196
const string first = "John Michael Cane";
@@ -198,6 +201,7 @@ public async Task AiNameMatchTest()
198201
}
199202

200203
[Test]
204+
[Pipeline]
201205
public async Task AiNameExpandTest()
202206
{
203207
const string name = "Smith Bobby";
@@ -214,6 +218,7 @@ public async Task AiNameExpandTest()
214218
/// Name complete test
215219
/// </summary>
216220
[Test]
221+
[Pipeline]
217222
public async Task AiNameCompleteTest()
218223
{
219224
const string prefix = "Dav";
@@ -228,6 +233,7 @@ public async Task AiNameCompleteTest()
228233
}
229234

230235
[Test]
236+
[Pipeline]
231237
public async Task AiNameParseEmailAddressTest()
232238
{
233239
const string address = "john-cane@gmail.com";
@@ -246,6 +252,7 @@ public async Task AiNameParseEmailAddressTest()
246252
/// Test business card recognition with storage.
247253
/// </summary>
248254
[Test]
255+
[Pipeline]
249256
public async Task AiBcrParseStorageTest()
250257
{
251258
var fileName = $"{Guid.NewGuid().ToString()}.png";
@@ -295,6 +302,7 @@ await emailApi.UploadFileAsync(new UploadFileRequest($"{folder}/{fileName}", str
295302
/// Send image as Base64 string and get VCard properties without producing any files in storage.
296303
/// </summary>
297304
[Test]
305+
[Pipeline]
298306
public async Task AiBcrParseTest()
299307
{
300308
var result = await emailApi.AiBcrParseAsync(new AiBcrParseRequest(new AiBcrBase64Rq(
@@ -402,6 +410,7 @@ await emailApi.SaveContactModelAsync(
402410
}
403411

404412
[Test]
413+
[Pipeline]
405414
public async Task AiBcrParseModelTest()
406415
{
407416
var result = await emailApi.AiBcrParseModelAsync(
@@ -415,6 +424,21 @@ public async Task AiBcrParseModelTest()
415424
Assert.AreEqual("Alex Thomas", result.Value.First().DisplayName);
416425
}
417426

427+
[Test]
428+
[Pipeline]
429+
public async Task DiscoverEmailConfigTest()
430+
{
431+
var configs = await emailApi.DiscoverEmailConfigAsync(
432+
new DiscoverEmailConfigRequest("example@gmail.com", true));
433+
var protocols = configs.Value
434+
.Select(config => config.ProtocolType)
435+
.ToList();
436+
Assert.Contains("SMTP", protocols);
437+
Assert.Contains("IMAP", protocols);
438+
Assert.AreEqual("smtp.gmail.com", configs.Value
439+
.First(config => config.ProtocolType == "SMTP").Host);
440+
}
441+
418442
private static string FileToBase64(string filePath)
419443
{
420444
var bytes = File.ReadAllBytes(filePath);

Aspose.Email-Cloud.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
<RepositoryUrl>https://github.com/aspose-email-cloud/aspose-email-cloud-dotnet</RepositoryUrl>
1313
<PackageTags>ASPOSE EMAIL CLOUD SDK Outlook MSG EML MHT</PackageTags>
1414
<RootNamespace>Aspose.Email.Cloud.Sdk</RootNamespace>
15-
<Version>20.1.0</Version>
15+
<Version>20.1.1</Version>
16+
<AndroidUseIntermediateDesignerFile>False</AndroidUseIntermediateDesignerFile>
1617
</PropertyGroup>
1718
<ItemGroup Condition=" '$(TargetFramework)' == 'Xamarin.iOS10' OR '$(TargetFramework)' == 'Xamarin.Mac20' OR '$(TargetFramework)' == 'MonoAndroid60'">
1819
<PackageReference Include="Newtonsoft.Json" Version="8.0.3" />

0 commit comments

Comments
 (0)