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();