Exemple #1
0
        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));
        }