Beispiel #1
0
        public void EncaminhaFeedback(List <EstruturaFeedback> lista, int respiro, int quantidade)
        {
            BD bd = new BD();

            try
            {
                EstruturaFeedback   feedBack    = null;
                EnviarEmailParalela enviarEmail = new EnviarEmailParalela();
                string     corpoEmail           = new StreamReader(ConfigurationManager.AppSettings["CaminhoFisicoHTMLFeedBack"] + "\\Feedback.htm").ReadToEnd();
                List <int> vendabilheterias     = new List <int>();

                while (lista.Count > 0)
                {
                    for (int i = 0; i < quantidade; i++)
                    {
                        feedBack = lista.FirstOrDefault();
                        if (feedBack == null)
                        {
                            break;
                        }
                        enviarEmail.EnviarFeedback(corpoEmail, feedBack);
                        vendabilheterias.Add(feedBack.VendaBilheteriaID);
                        lista.Remove(feedBack);
                    }
                    Thread.Sleep(respiro);
                }

                bd.BulkInsert(vendabilheterias, "#VendasEnviadas", false, true);
                bd.Executar(
                    @"
						UPDATE vb SET vb.EmailEnviado = 'T'
						FROM tVendaBilheteria vb
						INNER JOIN #VendasEnviadas ON vb.ID = #VendasEnviadas.ID
					"                    );
            }
            finally
            {
                bd.Fechar();
            }
        }