diff --git a/src/NOCQ/NOCQ.csproj b/src/NOCQ/NOCQ.csproj
index 75b8f50..6206afc 100644
--- a/src/NOCQ/NOCQ.csproj
+++ b/src/NOCQ/NOCQ.csproj
@@ -59,12 +59,15 @@
-
+
+ IEmailSetting.cs
+
+
diff --git a/src/NOCQ/Plugins/Email/EmailSettings.cs b/src/NOCQ/Plugins/Email/EmailSettings.cs
index 295d427..d5af464 100644
--- a/src/NOCQ/Plugins/Email/EmailSettings.cs
+++ b/src/NOCQ/Plugins/Email/EmailSettings.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
namespace NOCQ.Plugins.Email
{
- public class EmailSettings
+ public class EmailSettings :IEmailSetting
{
public string Username {get;set;}
public string Password {get;set;}
diff --git a/src/NOCQ/Plugins/Email/IEmailSetting.cs b/src/NOCQ/Plugins/Email/IEmailSetting.cs
new file mode 100644
index 0000000..e4244ca
--- /dev/null
+++ b/src/NOCQ/Plugins/Email/IEmailSetting.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+namespace NOCQ.Plugins.Email
+{
+ public interface IEmailSetting
+ {
+ string Username {get;set;}
+ string Password {get;set;}
+ string Host {get;set;}
+ int Port {get;set;}
+ string Folder {get;set;}
+ bool IsSsl {get;set;}
+ int Frequency { get; set; }
+ IEnumerable ParseRules {get;set;}
+ }
+}
+
diff --git a/src/NOCQ/Plugins/Email/ImapInput.cs b/src/NOCQ/Plugins/Email/ImapInput.cs
index 9812dce..8d690b7 100644
--- a/src/NOCQ/Plugins/Email/ImapInput.cs
+++ b/src/NOCQ/Plugins/Email/ImapInput.cs
@@ -8,24 +8,24 @@ namespace NOCQ.Plugins.Email
{
public class ImapInput
{
- private string loginName { get; set; }
- private string password { get; set; }
- private string server { get; set; }
- private string folderPath { get; set; }
- private Timer timer { get; set; }
- private int port { get; set; }
- private bool ssl { get; set; }
- private DateTime lastRun { get; set; }
- private List parseRules{ get; set; }
+ string loginName { get; set; }
+ string password { get; set; }
+ string server { get; set; }
+ string folderPath { get; set; }
+ Timer timer { get; set; }
+ int port { get; set; }
+ bool ssl { get; set; }
+ DateTime lastRun { get; set; }
+ List parseRules{ get; set; }
public ImapInput (dynamic settings)
{
var sets = settings as EmailSettings;
- if (sets.Username == null
- || sets.Password == null
- || sets.Host == null
- || sets.Folder == null)
+ if (sets.GetType().GetProperty("Username") == null
+ || sets.GetType().GetProperty("Password") == null
+ || sets.GetType().GetProperty("Host") == null
+ || sets.GetType().GetProperty("Folder") == null)
throw new ArgumentException ("You are missing a required setting.");
parseRules = sets.ParseRules.Where (x => x.Enabled).ToList();