public static bool Synchronize(List <IEmailDerivative> derivatives) { if (derivatives.Count < 1) { throw new Exception(); } IEmailDerivative firstElement = derivatives[0]; DataTable dt = firstElement.GetDataTableWithSchema(); foreach (IEmailDerivative ied in derivatives) { dt.Rows.Add(ied.ToObjectArray()); } Db.ExecuteNonQueryProcedure(firstElement.GetProcedureName(), new[] { new SqlParameter(firstElement.GetProcedureParameter(), SqlDbType.Structured) { TypeName = firstElement.GetTypeName(), Value = dt } }); //using (StreamWriter sw = new StreamWriter(new FileStream(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "dupa.txt"), FileMode.CreateNew))) //{ // foreach (IEmailDerivative ied in derivatives) // { // MailDeliverySubsystem = ((MailDeliverySubsystem) ied).T // sw.WriteLine(ied.ToObjectArray) // } //} return(true); }
public bool ProcessEmails(JobType jobType) { List <IEmailDerivative> derivativesList = new List <IEmailDerivative>(); using (var client = new ImapClient()) { client.Connect(mailServer, port, ssl); client.AuthenticationMechanisms.Remove("XOAUTH2"); client.Authenticate(login, password); client.Inbox.Open(FolderAccess.ReadOnly); int d = 0; foreach (UniqueId uid in client.Inbox.Search(_searchQueries[jobType])) { MimeMessage mm = client.Inbox.GetMessage(uid); //if (mm.HtmlBody.IndexOf("localhost") == -1) // remove this line if necessary //{ if (ConfigurationProvider.TestMode) { Logger.AddMessageToLog(mm); } try { IEmailDerivative emailDerivative = ProduceEmailDerivative(mm, jobType); if (emailDerivative != null) { derivativesList.Add(emailDerivative); Console.WriteLine("{0}", ++d); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } //} } client.Disconnect(true); } //return DbProvider.Synchronize(derivativesList); return(DbProvider.ProduceUpdatesList(derivativesList)); }