Example #1
0
        public string PostMails(MailData mails)
        {
            var result        = true;
            var failedMessage = "";

            try
            {
                MailSender.Default.Send("***YOUR MAIL***@gmail.com", mails.Recipients, mails.Subject, mails.Body);
            }
            catch (SmtpException e)
            {
                result        = false;
                failedMessage = e.Message;
            }
            Mail mail = new Mail()
            {
                Body = mails.Body, Subject = mails.Subject, SendingDate = DateTime.Now, Result = result, FailedMessage = failedMessage
            };

            db.Mails.Add(mail);
            foreach (var recipient in mails.Recipients)
            {
                db.SentMails.Add(new SentMail()
                {
                    Recipient = recipient, Mail = mail
                });
            }

            db.SaveChanges();
            if (result)
            {
                return("Message successfully sended");
            }
            return("Message not sended. " + failedMessage);
        }
Example #2
0
        public static void MainLogic(object sender)
        {
            try
            {
                // Получаем все письма с почтового ящика
                //IEnumerable<MailMessage> messages = GetMessages();
                // Сохраняем полученные файлы во временный каталог
                //SaveMail(messages);

                // Получаем все файлы с информацией об авиа билетах и багаже
                IEnumerable <FileInfo> aviaFiles    = GetFiles("electronic ticket");
                IEnumerable <FileInfo> baggageFiles = GetFiles("baggage");

                Parser parser = new Parser();

                AviaTicket  ticket  = null;
                AviaBaggage baggage = null;

                foreach (FileInfo item in aviaFiles)
                {
                    try
                    {
                        ticket = parser.ParseAviaTicket(item.FullName);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(item.FullName);
                    }

                    using (MailDb db = new MailDb())
                    {
                        var query = from t in db.Tickets
                                    where t.TicketNumber == ticket.TicketNumber
                                    select t;

                        if (query.Count() == 0)
                        {
                            db.Tickets.Add(new Ticket()
                            {
                                TicketNumber = ticket.TicketNumber, Agent = ticket.Agent
                            });
                            db.SaveChanges();
                            SaveFileToXML(ticket);
                        }
                    }
                }

                foreach (FileInfo item in baggageFiles)
                {
                    try
                    {
                        baggage = parser.ParseAviaBaggage(item.FullName);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(item.FullName);
                    }


                    using (MailDb db = new MailDb())
                    {
                        var query = from b in db.Baggages
                                    where b.BaggageNumber == baggage.No
                                    select b;

                        if (query.Count() == 0)
                        {
                            db.Baggages.Add(new Baggage()
                            {
                                BaggageNumber = baggage.No
                            });
                            db.SaveChanges();
                            SaveFileToXML(baggage);
                        }
                    }
                }

                Console.WriteLine("End parsing!");
                DirectoryInfo tempFolder = new DirectoryInfo(@".\AviaTicketsFromMail");
                try
                {
                    //tempFolder.Delete(true);
                }
                catch (Exception ex) { }
            }
            catch (Exception ex)
            {
                string str = $"Date: {DateTime.Now}\nError: {ex.Message}\nStackTrace: {ex.StackTrace}";
                using (StreamWriter writer = new StreamWriter(@"error.log", true, Encoding.UTF8))
                {
                    writer.WriteLine(str);
                }
            }
        }