public IHttpActionResult Email([FromBody] DTONotificacaoProduto notificacaoProduto)
        {
            try
            {
                EmailNotification         notification      = new EmailNotification();
                NotificacaoProdutoService notifyServ        = new NotificacaoProdutoService();
                DestinarioService         destinarioService = new DestinarioService();
                CrawlerService            crawler           = new CrawlerService();

                var produtosParaNotificar = notifyServ.ListarNotificacoes(notificacaoProduto.EmailDestinario);
                var destinario            = destinarioService.GetDestinario(notificacaoProduto.EmailDestinario);

                List <Produto> listaProdutos = new List <Produto>();

                foreach (var produtos in produtosParaNotificar)
                {
                    var listaProdutosIteracao = crawler.PesquisarProduto(new DTOProdutoPesquisa {
                        produto = produtos.NomeProduto, valor_produto_min = produtos.ValorMinProduto, valor_produto_max = produtos.ValorMaxProduto
                    }).Take(4);
                    listaProdutosIteracao.ForEach(x => listaProdutos.Add(x));
                }

                notification.Notificar(listaProdutos, destinario);
                return(Ok(new {
                    message = "E-mail enviado com sucesso."
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult Notificacoes()
        {
            NotificacaoProdutoService service = new NotificacaoProdutoService();
            var listaProdutos = service.ListarNotificacoes();

            return(Ok(new
            {
                data = listaProdutos,
                message = "Lista de produtos encontrada com sucesso."
            }));
        }
        public IHttpActionResult NotificacoesEmail([FromUri] string email)
        {
            NotificacaoProdutoService service = new NotificacaoProdutoService();
            var listaProdutos = service.ListarNotificacoes(email);

            return(Ok(new
            {
                data = listaProdutos,
                message = "Lista de produtos cadastrados para este e-mail encontrada com sucesso."
            }));
        }
 public IHttpActionResult RemoverNotificacao([FromBody] DTONotificacaoProduto notificacao)
 {
     try
     {
         NotificacaoProdutoService service = new NotificacaoProdutoService();
         service.RemoverNotificacao(notificacao);
         return(Ok(new
         {
             message = "Notificação de produto descadastrada com sucesso."
         }));
     }
     catch (Exception ex)
     {
         return(InternalServerError(ex));
     }
 }
        public IHttpActionResult CadastroNotificacao([FromBody] DTONotificacaoProduto notificacao)
        {
            try
            {
                NotificacaoProdutoService service = new NotificacaoProdutoService();
                var objCtx = service.CadastrarNotificacao(notificacao.EmailDestinario, new NotificacaoProduto
                {
                    NomeProduto     = notificacao.NomeProduto,
                    ValorMaxProduto = notificacao.ValorMaxProduto,
                    ValorMinProduto = notificacao.ValorMinProduto
                });

                return(Ok(new {
                    data = objCtx,
                    message = "Notificação de produto cadastrada com sucesso."
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
예제 #6
0
        public static void EnviarEmailPrecos()
        {
            EmailNotification         notification      = new EmailNotification();
            NotificacaoProdutoService notifyServ        = new NotificacaoProdutoService();
            DestinarioService         destinarioService = new DestinarioService();
            CrawlerService            crawler           = new CrawlerService();

            var destinarios = destinarioService.ListarDestinarios();

            foreach (var destinario in destinarios)
            {
                List <Produto> listaProdutos = new List <Produto>();

                foreach (var produtos in destinario.Produtos)
                {
                    var listaProdutosIteracao = crawler.PesquisarProduto(new DTOProdutoPesquisa {
                        produto = produtos.NomeProduto, valor_produto_min = produtos.ValorMinProduto, valor_produto_max = produtos.ValorMaxProduto
                    }).Take(4).ToList();
                    listaProdutosIteracao.ForEach(x => listaProdutos.Add(x));
                }

                notification.Notificar(listaProdutos, destinario);
            }
        }