Example #1
0
        static void ComputePrices_OLD()
        {
            System.Net.ServicePointManager.DefaultConnectionLimit = NThreads;
            var settings = SettingsConfigurationSection.Settings("Settings");

            sites = settings.Sites;

            var    articles          = settings.Articles;
            string HGMLiftParts_Code = "";

            foreach (var article in articles.OrderBy(x => x.HGMLiftParts_Code).ThenBy(x => x.Site))
            {
                Articles.Add(article);
                if (article.HGMLiftParts_Code != HGMLiftParts_Code)
                {
                    PricesToCalculate.Push(new Tuple <string, string, Articles>("HGMLiftParts", HGMLiftParts_Code = article.HGMLiftParts_Code, article));
                }
                PricesToCalculate.Push(new Tuple <string, string, Articles>(article.Site, article.Code, article));
            }

            while (PricesToCalculate.Count > 0)
            {
                stopWaitHandle = new AutoResetEvent(false);
                for (int i = 0; (i < NThreads) && (PricesToCalculate.Count > 0); i++)
                {
                    if (threads[i] == null)
                    {
                        threads[i] = new Thread(HandleThread);
                        var PriceToCalculate = PricesToCalculate.Pop();
                        threads[i].Name = string.Format("site: {0}, code: {1}", PriceToCalculate.Item1, PriceToCalculate.Item2);
                        threads[i].Start(new args(i, PriceToCalculate.Item1, PriceToCalculate.Item2, PriceToCalculate.Item3));
                    }
                }
                stopWaitHandle.WaitOne();
            }

            for (int i = 0; i < NThreads; i++)
            {
                if (threads[i] != null)
                {
                    threads[i].Join();
                }
            }

            HGMLiftParts_Code = "";
            double?HGMLiftParts_Price = null;

            foreach (var article in Articles)
            {
                if (article.HGMLiftParts_Code == HGMLiftParts_Code)
                {
                    article.HGMLiftParts_Price = HGMLiftParts_Price;
                }
                else
                {
                    HGMLiftParts_Price = article.HGMLiftParts_Price;
                    HGMLiftParts_Code  = article.HGMLiftParts_Code;
                }
            }
        }
Example #2
0
        public static IConfiguration ConvertToConfiguration(this SettingsConfigurationSection settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            var directories = new List <DirectoryConfiguration>();

            foreach (DirectoryConfigurationElement settingsDirectory in settings.Directories)
            {
                directories.Add(new DirectoryConfiguration(settingsDirectory.Path));
            }

            var rules = new List <RuleConfiguration>();

            foreach (RuleConfigurationElement rule in settings.Rules)
            {
                rules.Add(new RuleConfiguration(rule.FilePattern,
                                                rule.DestinationDirectory,
                                                rule.SerialNumberEnable,
                                                rule.MovingDateEnable));
            }

            var defaultRule = new RuleConfiguration("*",
                                                    settings.Rules.DefaultDirectoryPath,
                                                    true,
                                                    true);

            return(new Config(settings.Culture,
                              directories,
                              rules,
                              defaultRule));
        }
Example #3
0
        private static void SendReport_OLD()
        {
            StringBuilder sb = new StringBuilder("<table border='1'><tr><th>HGMLiftParts Code</th><th>HGMLiftParts Price</th><th>Site</th><th>Code</th><th>Price</th><th>Difference</th><th>Difference (%)</th></tr>");

            foreach (var article in Articles)
            {
                sb.AppendFormat("<tr><td>{0}</td><td align='right'>{1:N2}</td><td>{2}</td><td>{3}</td><td align='right'>{4}{5:N2}{6}</td><td align='right'>{7:+0.00;-0.00;0.00}</td><td align='right'>{8:+0.00;-0.00;0.00}</td></tr>", article.HGMLiftParts_Code, article.HGMLiftParts_Price == -1 ? null : article.HGMLiftParts_Price, article.Site, article.Code, article.Price != -1 && article.Price < article.HGMLiftParts_Price ? "<font color=red>" : "", article.Price == -1 ? null : article.Price, article.Price != -1 && article.Price < article.HGMLiftParts_Price ? "</font>" : "", article.Price == -1 || article.HGMLiftParts_Price == -1 ? null : article.Price - article.HGMLiftParts_Price, article.Price == -1 || article.HGMLiftParts_Price == -1 || article.HGMLiftParts_Price == 0 ? null : (article.Price - article.HGMLiftParts_Price) / article.HGMLiftParts_Price * 100.0);
            }
            sb.Append("</table>");
            //File.AppendAllText("output.html", sb.ToString());

            var contents     = sb.ToString();
            var contentsFile = "LastMail.html";

            log.DebugFormat("Sending mail with contents: {0}", sb.ToString());
            contentsFile.DeleteFile();
            File.WriteAllText(contentsFile, contents);

            int Port;

            int.TryParse(SettingsConfigurationSection.AppSetting("SendMailPort"), out Port);
            using (SmtpClient client = new SmtpClient(SettingsConfigurationSection.AppSetting("SendMailHost"), Port))
            {
                client.EnableSsl = SettingsConfigurationSection.AppSetting("SendMailEnableSsl").Equals("true", StringComparison.OrdinalIgnoreCase);
                MailAddress from       = new MailAddress(SettingsConfigurationSection.AppSetting("SendMailFrom"), SettingsConfigurationSection.AppSetting("SendMailFrom"));
                string      SendMailTo = SettingsConfigurationSection.AppSetting("SendMailTo");
#if false
                MailAddress to = new MailAddress(SendMailTo, SendMailTo);
                using (MailMessage message = new MailMessage(from, to))
                {
#else
                using (MailMessage message = new MailMessage())
                {
                    message.From = from;
                    foreach (var to in (SendMailTo ?? "").Replace(";", ",").Split(',').Select(x => x.Trim()).Where(x => (x.Length > 0) && (x.Contains('@'))))
                    {
                        message.To.Add(to);
                    }
#endif
                    message.IsBodyHtml = true;
                    message.Subject    = SettingsConfigurationSection.AppSetting("SendMailSubject");
                    message.Body       = sb.ToString();
                    message.ReplyToList.Add(SettingsConfigurationSection.AppSetting("SendMailFrom"));
                    NetworkCredential myCreds = new NetworkCredential(SettingsConfigurationSection.AppSetting("SendMailUser"), SettingsConfigurationSection.AppSetting("SendMailPwd"), SettingsConfigurationSection.AppSetting("SendMailDomain"));
                    client.Credentials = myCreds;
                    client.Send(message);
                }
            }
        }
Example #4
0
        private static void SendReport(List <ReportEntry> prices)
        {
            //var html = Extensions.GetMyTable<ReportEntry>(prices, re=> re.idx, re=>re.PartCode);
            var html = Utils.GetMyTable <ReportEntry>(prices,
                                                      r => r.idx, r => r.PartCode, r => r.HGMPriceStr,
                                                      r => r.TruparPriceStr, r => r.DifferenceTruparStr, r => r.DifferenceTruparPCTStr,
                                                      r => r.LiftPartsPartCode, r => r.LiftPartsPriceStr, r => r.DifferenceLiftPartsStr, r => r.DifferenceLiftPartsPCTStr
                                                      );

            var contentsFile = "LastMail.html";

            //log.DebugFormat("Sending mail with contents: {0}", html);
            log.DebugFormat("Sending mail");
            contentsFile.DeleteFile();
            File.WriteAllText(contentsFile, html);
            //
            int Port;

            int.TryParse(SettingsConfigurationSection.AppSetting("SendMailPort"), out Port);
            using (SmtpClient client = new SmtpClient(SettingsConfigurationSection.AppSetting("SendMailHost"), Port))
            {
                client.EnableSsl = SettingsConfigurationSection.AppSetting("SendMailEnableSsl").Equals("true", StringComparison.OrdinalIgnoreCase);
                MailAddress from       = new MailAddress(SettingsConfigurationSection.AppSetting("SendMailFrom"), SettingsConfigurationSection.AppSetting("SendMailFrom"));
                string      SendMailTo = SettingsConfigurationSection.AppSetting("SendMailTo");
#if false
                MailAddress to = new MailAddress(SendMailTo, SendMailTo);
                using (MailMessage message = new MailMessage(from, to))
                {
#else
                using (MailMessage message = new MailMessage())
                {
                    message.From = from;
                    foreach (var to in (SendMailTo ?? "").Replace(";", ",").Split(',').Select(x => x.Trim()).Where(x => (x.Length > 0) && (x.Contains('@'))))
                    {
                        message.To.Add(to);
                    }
#endif
                    message.IsBodyHtml = true;
                    message.Subject    = SettingsConfigurationSection.AppSetting("SendMailSubject");
                    message.Body       = html;
                    message.ReplyToList.Add(SettingsConfigurationSection.AppSetting("SendMailFrom"));
                    NetworkCredential myCreds = new NetworkCredential(SettingsConfigurationSection.AppSetting("SendMailUser"), SettingsConfigurationSection.AppSetting("SendMailPwd"), SettingsConfigurationSection.AppSetting("SendMailDomain"));
                    client.Credentials = myCreds;
                    //client.Send(message);
                }
            }
        }