Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 52 additions & 52 deletions src/Typesafe.Mailgun/MailgunClient.cs
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
using System;
using System.Collections.Generic;
using System.Net.Mail;
using Typesafe.Mailgun.Routing;
using Typesafe.Mailgun.Statistics;

namespace Typesafe.Mailgun
{
/// <summary>
/// Provides access to the Mailgun REST API.
/// </summary>
public class MailgunClient : IMailgunAccountInfo, IMailgunClient
{
/// <summary>
/// Initializes a new client for the specified domain and api key.
/// </summary>
public MailgunClient(string domain, string apiKey, int version)
{
DomainBaseUrl = new Uri(string.Format("https://api.mailgun.net/v{0}/", version) + domain + "/");
ApiKey = apiKey;
}

public Uri DomainBaseUrl { get; private set; }

public string ApiKey { get; private set; }

public SendMailCommandResult SendMail(MailMessage mailMessage)
{
return new SendMailCommand(this, mailMessage).Invoke();
using System;
using System.Collections.Generic;
using System.Net.Mail;
using Typesafe.Mailgun.Routing;
using Typesafe.Mailgun.Statistics;
namespace Typesafe.Mailgun
{
/// <summary>
/// Provides access to the Mailgun REST API.
/// </summary>
public class MailgunClient : IMailgunAccountInfo, IMailgunClient
{
/// <summary>
/// Initializes a new client for the specified domain and api key.
/// </summary>
public MailgunClient(string domain, string apiKey, int version, string region = "us")
{
DomainBaseUrl = new Uri($"https://api.{(!region.Equals("us") ? $"{region}." : "")}mailgun.net/v{version}/{domain}/");
ApiKey = apiKey;
}
public Uri DomainBaseUrl { get; private set; }
public string ApiKey { get; private set; }
public SendMailCommandResult SendMail(MailMessage mailMessage)
{
return new SendMailCommand(this, mailMessage).Invoke();
}

public SendMailCommandResult SendBatchMail(MailMessage mailMessage)
Expand All @@ -37,26 +37,26 @@ public SendMailCommandResult SendBatchMail(MailMessage mailMessage)
public SendMailCommandResult SendBatchMail(MailMessage mailMessage, IDictionary<string, IDictionary<string, object>> recipientVariables)
{
return new SendMailCommand(this, mailMessage, recipientVariables).Invoke();
}

public IEnumerable<Route> GetRoutes(int skip, int take, out int count)
{
return new MailgunRouteQuery(this).Execute(skip, take, out count);
}

public Route CreateRoute(int priority, string description, RouteFilter expression, params RouteAction[] actions)
{
return new CreateRouteCommand(this, priority, description, expression, actions).Invoke().Route;
}

public CommandResult DeleteRoute(string routeId)
{
return new DeleteCommand(this, "../routes/" + routeId).Invoke();
}

public IEnumerable<MailgunStatEntry> GetStats(int skip, int take, MailgunEventTypes eventTypes, out int count)
{
return new MailgunStatsQuery(this, eventTypes).Execute(skip, take, out count);
}
}
}
}
public IEnumerable<Route> GetRoutes(int skip, int take, out int count)
{
return new MailgunRouteQuery(this).Execute(skip, take, out count);
}
public Route CreateRoute(int priority, string description, RouteFilter expression, params RouteAction[] actions)
{
return new CreateRouteCommand(this, priority, description, expression, actions).Invoke().Route;
}
public CommandResult DeleteRoute(string routeId)
{
return new DeleteCommand(this, "../routes/" + routeId).Invoke();
}
public IEnumerable<MailgunStatEntry> GetStats(int skip, int take, MailgunEventTypes eventTypes, out int count)
{
return new MailgunStatsQuery(this, eventTypes).Execute(skip, take, out count);
}
}
}