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 void RemoverNotificacao(DTONotificacaoProduto notificacao)
        {
            //var destinario = _destinarioRepo.Listar().ToList().Where(x => x.Email.Contains(emailDestinario)).FirstOrDefault();
            NotificacaoProduto notificacaoAchada = notificacao.Id.HasValue ? _repo.EncontrarPorId((int)notificacao.Id) : _repo.Listar(x => x.Destinario.Email == notificacao.EmailDestinario && x.NomeProduto.ToLower().Contains(notificacao.NomeProduto)).FirstOrDefault();

            _repo.Remover(notificacaoAchada);
            _repo.Savechanges();
        }
 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));
            }
        }