コード例 #1
0
        public ActionResult EditarProdutoAdicional(int id)
        {
            try
            {
                #region validacao usuario logado

                //se a sessão de usuário não estiver preenchida, direciona para a tela de login
                if (Session["UsuarioLogado"] == null)
                {
                    return(RedirectToAction("Index", "Login"));
                }

                //recebe o usuário logado
                usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

                #endregion

                #region limpa as viewbags de mensagem

                Session["MensagemCarregamentoEditarProdutoAdicionalProduto"] = null;

                #endregion

                #region busca os produtos adicionais

                List <DadosProdutoAdicional> listaDadosProdutoAdicional = new List <DadosProdutoAdicional>();

                //busca todos os cardápios da loja
                retornoRequest = rest.Get("/ProdutoAdicional/listar/" + usuarioLogado.IdLoja);

                //se ocorrer algum erro
                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    Session["MensagemCarregamentoEditarProdutoAdicionalProduto"] = "não foi possível carregar os dados dos produtos adicionais. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                    return(RedirectToAction("Detalhes", "Produto", new { id = id }));
                }

                string json = retornoRequest.objeto.ToString();

                listaDadosProdutoAdicional = JsonConvert.DeserializeObject <List <DadosProdutoAdicional> >(json);

                listaDadosProdutoAdicional = listaDadosProdutoAdicional.FindAll(p => p.Ativo);

                ViewBag.ProdutosAdicionais = listaDadosProdutoAdicional;

                #endregion

                #region busca o produto adicional do produto

                DadosProdutoAdicionalProduto dadosProdutoAdicionalProduto = new DadosProdutoAdicionalProduto();

                //busca os dados do produto adicional
                retornoRequest = rest.Get(string.Format("/Produto/BuscarProdutoAdicional/{0}/{1}", id, usuarioLogado.IdLoja));

                //se ocorrer algum erro
                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    Session["MensagemCarregamentoEditarProdutoAdicionalProduto"] = "não foi possível carregar os dados do produto adicional. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                    return(RedirectToAction("Detalhes", "Produto", new { id = id }));
                }

                string jsonResult = retornoRequest.objeto.ToString();

                dadosProdutoAdicionalProduto = JsonConvert.DeserializeObject <DadosProdutoAdicionalProduto>(jsonResult);

                #endregion

                return(View(dadosProdutoAdicionalProduto));
            }
            catch (Exception)
            {
                Session["MensagemCarregamentoEditarProdutoAdicionalProduto"] = "não foi possível carregar os dados do produto adicional. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                return(RedirectToAction("Detalhes", "Produto", new { id = id }));
            }
        }
コード例 #2
0
        public ActionResult Detalhes(int id)
        {
            try
            {
                #region validacao usuario logado

                //se a sessão de usuário não estiver preenchida, direciona para a tela de login
                if (Session["UsuarioLogado"] == null)
                {
                    return(RedirectToAction("Index", "Login"));
                }

                //recebe o usuário logado
                usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

                #endregion

                #region limpa as viewbags de mensagem

                ViewBag.MensagemDetalhesProduto = null;

                #endregion

                #region busca o produto

                Produto produto     = new Produto();
                string  jsonRetorno = null;

                //busca todos os cardápios da loja
                retornoRequest = rest.Get(string.Format("/Produto/{0}/{1}", id, usuarioLogado.IdLoja));

                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    ViewBag.MensagemDetalhesProduto = "não foi possível exibir detalhes do produto. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                }
                else
                {
                    jsonRetorno = retornoRequest.objeto.ToString();
                    produto     = JsonConvert.DeserializeObject <Produto>(jsonRetorno);
                }

                #endregion

                #region busca a relação de produtos adicionais do produto

                List <DadosProdutoAdicionalProduto> listaDadosProdutoAdicionalProduto = new List <DadosProdutoAdicionalProduto>();

                //busca os produtos adicionais deste produto
                retornoRequest = rest.Get(string.Format("/Produto/BuscarProdutosAdicionaisDeUmProduto/{0}/{1}", id, usuarioLogado.IdLoja));

                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    ViewBag.MensagemDetalhesProduto = "não foi possível exibir detalhes do produto. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                }
                else
                {
                    jsonRetorno = retornoRequest.objeto.ToString();
                    listaDadosProdutoAdicionalProduto = JsonConvert.DeserializeObject <List <DadosProdutoAdicionalProduto> >(jsonRetorno);

                    //se não existirem produtos adicionais para este produto, insere um produto na lista apenas para exibicao
                    if (listaDadosProdutoAdicionalProduto.Count == 0)
                    {
                        listaDadosProdutoAdicionalProduto.Add(new DadosProdutoAdicionalProduto {
                            IdProduto = produto.Id, NomeProduto = produto.Nome
                        });
                    }
                }

                #endregion

                return(View(listaDadosProdutoAdicionalProduto));
            }
            catch (Exception)
            {
                ViewBag.MensagemDetalhesProduto = "não foi possível exibir detalhes do produto. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                return(View());
            }
        }
コード例 #3
0
        public ActionResult AdicionarProdutoAdicional(int id)
        {
            try
            {
                #region validacao usuario logado

                //se a sessão de usuário não estiver preenchida, direciona para a tela de login
                if (Session["UsuarioLogado"] == null)
                {
                    return(RedirectToAction("Index", "Login"));
                }

                //recebe o usuário logado
                usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

                #endregion

                #region limpa as viewbags de mensagem

                Session["MensagemCarregamentoAdicionarProdutoAdicional"] = null;

                #endregion

                #region busca os produtos adicionais

                List <DadosProdutoAdicional> listaDadosProdutoAdicional = new List <DadosProdutoAdicional>();

                //busca todos os produtos adicionais da loja
                retornoRequest = rest.Get("/ProdutoAdicional/listar/" + usuarioLogado.IdLoja);

                //se não encontrar produtos adicionais
                if (retornoRequest.HttpStatusCode == HttpStatusCode.NoContent)
                {
                    Session["MensagemCarregamentoAdicionarProdutoAdicional"] = "é necessário cadastrar um produto adicional antes de atrela-lo ao produto";
                    return(RedirectToAction("Detalhes", "Produto", new { id = id }));
                }

                //se ocorrer algum erro
                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    Session["MensagemCarregamentoAdicionarProdutoAdicional"] = "não foi possível consultar os produtos adicionais. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                    return(RedirectToAction("Detalhes", "Produto", new { id = id }));
                }

                string json = retornoRequest.objeto.ToString();

                listaDadosProdutoAdicional = JsonConvert.DeserializeObject <List <DadosProdutoAdicional> >(json);

                ViewBag.ProdutosAdicionais = listaDadosProdutoAdicional;

                #endregion

                DadosProdutoAdicionalProduto dadosProdutoAdicionalProduto = new DadosProdutoAdicionalProduto()
                {
                    IdProduto = id,
                    IdLoja    = usuarioLogado.IdLoja
                };

                //if (Session["ProdutoAdicionalProdutoCadastro"] != null)
                //    dadosProdutoAdicionalProduto = Session["ProdutoAdicionalProdutoCadastro"] as DadosProdutoAdicionalProduto;

                //Session["ProdutoAdicionalProdutoCadastro"] = null;

                return(View(dadosProdutoAdicionalProduto));
            }
            catch (Exception)
            {
                Session["MensagemCarregamentoAdicionarProdutoAdicional"] = "é necessário cadastrar um produto adicional antes de atrela-lo ao produto";
                return(RedirectToAction("Detalhes", "Produto", new { id = id }));
            }
        }
コード例 #4
0
        public ActionResult Index()
        {
            try
            {
                #region validacao usuario logado

                //se a sessão de usuário não estiver preenchida, direciona para a tela de login
                if (Session["UsuarioLogado"] == null)
                {
                    return(RedirectToAction("Index", "Login"));
                }

                //recebe o usuário logado
                usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

                //verifica se o usuário tem permissão na página
                if (usuarioLogado.NivelPermissao == 2)
                {
                    return(RedirectToAction("Index", "Pedido"));
                }

                #endregion

                #region limpa as viewbags de mensagem

                ViewBag.MensagemCardapio = null;

                #endregion

                //busca todos os cardápios da loja
                retornoRequest = rest.Get("/menucardapio/listar/" + usuarioLogado.IdLoja);

                //se não encontrar cardápios para a loja
                if (retornoRequest.HttpStatusCode == HttpStatusCode.NoContent)
                {
                    ViewBag.MensagemCardapio = "não existem cardápios cadastrados";
                    return(View());
                }

                //se ocorrer algum erro
                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    ViewBag.MensagemCardapio = "não foi possível consultar os cardápios. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                    return(View());
                }

                string jsonPedidos = retornoRequest.objeto.ToString();

                listaCardapio = JsonConvert.DeserializeObject <List <MenuCardapio> >(jsonPedidos);

                //monta a sessão com o caminho das imagens dos brindes
                string caminhoImagem = "http://" + usuarioLogado.UrlLoja + ".tasaindo.com.br/Images/" + usuarioLogado.UrlLoja + "/Produtos/";
                Session["CaminhoImagensProdutos"] = caminhoImagem;

                return(View(listaCardapio));
            }
            catch (Exception)
            {
                ViewBag.MensagemCardapio = "não foi possível consultar os cardápios. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                return(View());
            }
        }
コード例 #5
0
        public ActionResult EditarProduto(Produto produto, HttpPostedFileBase file)
        {
            #region validacao usuario logado

            //se a sessão de usuário não estiver preenchida, direciona para a tela de login
            if (Session["UsuarioLogado"] == null)
            {
                return(RedirectToAction("Index", "Login"));
            }

            //recebe o usuário logado
            usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

            #endregion

            #region limpa as viewbags de mensagem

            ViewBag.MensagemEditarProduto = null;

            #endregion

            #region validação dos campos

            //validação dos campos
            if (!ModelState.IsValid)
            {
                return(View("Editar", produto));
            }

            #endregion

            //variável para armazenar o retorno da requisição
            DadosRequisicaoRest retornoRequest = new DadosRequisicaoRest();

            try
            {
                //recebe a imagem do produto
                if (file != null)
                {
                    //valida o tamanho da imagem
                    //tamanho maximo permitido é 10 mb
                    if (file.ContentLength > 10000000)
                    {
                        ViewBag.MensagemEditarProduto = "a imagem deve ter no máximo 10 megabytes";
                        return(View("Adicionar", produto));
                    }

                    string pic          = System.IO.Path.GetFileName(file.FileName);
                    string caminhoPasta = ConfigurationManager.AppSettings["PastaImagens"] + usuarioLogado.UrlLoja + "/Produtos/";

                    string path = caminhoPasta + pic;

                    //se o diretório ainda não existir, cria um novo
                    if (!Directory.Exists(caminhoPasta))
                    {
                        Directory.CreateDirectory(caminhoPasta);
                    }

                    //salva a imagem na pasta
                    file.SaveAs(path);

                    //seta o nome da imagem no produto
                    produto.Imagem = pic;
                }

                string urlPost = string.Format("/Produto/Atualizar");

                produto.IdLoja = usuarioLogado.IdLoja;
                retornoRequest = rest.Post(urlPost, produto);

                //se o produto não for atualizado
                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    ViewBag.MensagemEditarProduto = "não foi possível atualizar o produto. por favor, tente novamente";
                    //return RedirectToAction("Editar", "Produto", new { id = produto.Id });
                    return(View("Editar", produto));
                }

                //se o produto for atualizado, direciona para a tela de visualização de produtos
                return(RedirectToAction("Index", "Produto"));
            }
            catch (Exception)
            {
                ViewBag.MensagemEditarProduto = "não foi possível atualizar o produto. por favor, tente novamente";
                //return RedirectToAction("Editar", "Produto", new { id = produto.Id });
                return(View("Editar", produto));
            }
        }
コード例 #6
0
        public ActionResult Editar(int id)
        {
            try
            {
                #region validacao usuario logado

                //se a sessão de usuário não estiver preenchida, direciona para a tela de login
                if (Session["UsuarioLogado"] == null)
                {
                    return(RedirectToAction("Index", "Login"));
                }

                //recebe o usuário logado
                usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

                #endregion

                #region limpa as viewbags de mensagem

                ViewBag.MensagemCarregamentoEditarProduto = null;

                #endregion

                #region busca os cardápios

                List <MenuCardapio> listaMenuCardapio = new List <MenuCardapio>();

                //busca todos os cardápios da loja
                retornoRequest = rest.Get("/menucardapio/listar/" + usuarioLogado.IdLoja);

                //se ocorrer algum erro
                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    ViewBag.MensagemCarregamentoEditarProduto = "não foi possível carregar os dados do produto. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                    return(View());
                }

                string jsonPedidos = retornoRequest.objeto.ToString();

                listaMenuCardapio = JsonConvert.DeserializeObject <List <MenuCardapio> >(jsonPedidos);

                //view bag com os cardápios
                ViewBag.MenuCardapio = listaMenuCardapio;

                #endregion

                //busca os dados do produto
                List <Produto> produtosCardapio = new List <Produto>();

                foreach (var cardapio in listaMenuCardapio)
                {
                    foreach (var produtoCardapio in cardapio.Produtos)
                    {
                        produtosCardapio.Add(produtoCardapio);
                    }
                }

                Produto produto = new Produto();
                produto = produtosCardapio.Where(p => p.Id == id).FirstOrDefault();

                List <DiasSemana> listaDiasSemana = new List <DiasSemana>
                {
                    new DiasSemana {
                        Id = 0, DiaSemana = "Domingo"
                    },
                    new DiasSemana {
                        Id = 1, DiaSemana = "Segunda-feira"
                    },
                    new DiasSemana {
                        Id = 2, DiaSemana = "Terça-feira"
                    },
                    new DiasSemana {
                        Id = 3, DiaSemana = "Quarta-feira"
                    },
                    new DiasSemana {
                        Id = 4, DiaSemana = "Quinta-feira"
                    },
                    new DiasSemana {
                        Id = 5, DiaSemana = "Sexta-feira"
                    },
                    new DiasSemana {
                        Id = 6, DiaSemana = "Sábado"
                    }
                };

                ViewBag.ListaDiasSemana    = listaDiasSemana;
                Session["ListaDiasSemana"] = listaDiasSemana;

                return(View(produto));
            }
            catch (Exception)
            {
                ViewBag.MensagemCarregamentoEditarProduto = "não foi possível carregar os dados do produto. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                return(View());
            }
        }
コード例 #7
0
        public ActionResult AdicionarProduto(Produto produto, HttpPostedFileBase file)
        {
            #region validacao usuario logado

            //se a sessão de usuário não estiver preenchida, direciona para a tela de login
            if (Session["UsuarioLogado"] == null)
            {
                return(RedirectToAction("Index", "Login"));
            }

            //recebe o usuário logado
            usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

            #endregion

            #region limpa as viewbags de mensagem

            ViewBag.MensagemCadProduto = null;

            #endregion

            #region validação dos campos

            //validação dos campos
            if (!ModelState.IsValid)
            {
                if (Session["ListaDiasSemana"] != null)
                {
                    ViewBag.ListaDiasSemana = (List <DiasSemana>)Session["ListaDiasSemana"];
                }

                if (Session["MenuCardapio"] != null)
                {
                    ViewBag.MenuCardapio = (List <MenuCardapio>)Session["MenuCardapio"];
                }

                return(View("Adicionar", produto));
            }

            #endregion


            DadosRequisicaoRest retornoRequest = new DadosRequisicaoRest();

            try
            {
                string urlPost = "/Produto/Adicionar/";

                //recebe a imagem do produto
                if (file != null)
                {
                    //valida o tamanho da imagem
                    //tamanho maximo permitido é 10 mb
                    if (file.ContentLength > 10000000)
                    {
                        ViewBag.MensagemCadProduto = "a imagem deve ter no máximo 10 megabytes";
                        return(View("Adicionar", produto));
                    }

                    string fileName   = Path.GetFileName(file.FileName);
                    string saveAsPath = Path.Combine(ConfigurationManager.AppSettings["PastaImagens"] + usuarioLogado.UrlLoja + "/Produtos/",
                                                     fileName);

                    file.SaveAs(saveAsPath);

                    //string pic = System.IO.Path.GetFileName(file.FileName);
                    string caminhoPasta = ConfigurationManager.AppSettings["PastaImagens"] + usuarioLogado.UrlLoja + "/Produtos/";

                    //string path = caminhoPasta + pic;

                    //se o diretório ainda não existir, cria um novo
                    if (!Directory.Exists(caminhoPasta))
                    {
                        Directory.CreateDirectory(caminhoPasta);
                    }

                    //salva a imagem na pasta
                    file.SaveAs(saveAsPath);

                    //seta o nome e caminho da imagem no produto
                    produto.Imagem = fileName;
                }

                produto.IdLoja = usuarioLogado.IdLoja;
                retornoRequest = rest.Post(urlPost, produto);

                if (retornoRequest.HttpStatusCode != HttpStatusCode.Created)
                {
                    ViewBag.MensagemCadProduto = "não foi possível cadastrar o produto . por favor, tente novamente";
                    return(View("Adicionar", produto));
                }

                return(RedirectToAction("Index", "Produto"));
            }
            catch (Exception)
            {
                ViewBag.MensagemCadProduto = "não foi possível cadastrar o produto. por favor, tente novamente";
                return(View("Adicionar", produto));
            }
        }
コード例 #8
0
        public ActionResult AdicionarBrinde(Brinde brindeCadastro, HttpPostedFileBase file)
        {
            #region validacao usuario logado

            //se a sessão de usuário não estiver preenchida, direciona para a tela de login
            if (Session["UsuarioLogado"] == null)
            {
                return(RedirectToAction("Index", "Login"));
            }

            //recebe o usuário logado
            usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

            #endregion

            DadosRequisicaoRest retornoRequest = new DadosRequisicaoRest();

            #region validações form

            if (file == null)
            {
                ViewBag.MensagemErroCadBrinde = "insira uma imagem para o brinde";
                return(View("Adicionar", brindeCadastro));
            }

            #endregion

            #region limpa as viewbags de mensagem

            ViewBag.MensagemErroCadBrinde = null;

            #endregion

            #region validação dos campos

            //validação dos campos
            if (!ModelState.IsValid)
            {
                return(View("Adicionar", brindeCadastro));
            }

            #endregion

            try
            {
                //recebe a imagem do brinde
                if (file != null)
                {
                    //valida o tamanho da imagem
                    //tamanho maximo permitido é 10 mb
                    if (file.ContentLength > 10000000)
                    {
                        ViewBag.MensagemErroCadBrinde = "a imagem deve ter no máximo 10 megabytes";
                        return(View("Adicionar", brindeCadastro));
                    }

                    string pic          = System.IO.Path.GetFileName(file.FileName);
                    string caminhoPasta = ConfigurationManager.AppSettings["PastaImagens"] + usuarioLogado.UrlLoja + "/Brindes/";

                    string path = caminhoPasta + pic;

                    //se o diretório ainda não existir, cria um novo
                    if (!Directory.Exists(caminhoPasta))
                    {
                        Directory.CreateDirectory(caminhoPasta);
                    }

                    //salva a imagem na pasta
                    file.SaveAs(path);

                    //seta o nome e caminho da imagem no brinde
                    brindeCadastro.Imagem = pic;
                }

                Brinde brinde = new Brinde
                {
                    IdLoja    = usuarioLogado.IdLoja,
                    Nome      = brindeCadastro.Nome,
                    Descricao = brindeCadastro.Descricao,
                    Imagem    = brindeCadastro.Imagem,
                    Ativo     = brindeCadastro.Ativo
                };

                string urlPost = "/Brinde/Adicionar";

                retornoRequest = rest.Post(urlPost, brinde);

                if (retornoRequest.HttpStatusCode == HttpStatusCode.Created)
                {
                    return(RedirectToAction("Index", "Brinde"));
                }
                else
                {
                    ViewBag.MensagemErroCadBrinde = "não foi possível cadastrar o brinde. por favor, tente novamente";
                    return(View("Adicionar", brindeCadastro));
                }
            }
            catch (Exception)
            {
                ViewBag.MensagemErroCadBrinde = "não foi possível cadastrar o brinde. por favor, tente novamente";
                return(View("Adicionar", brindeCadastro));
            }
        }
コード例 #9
0
        public string AtualizarStatusPedido(string dadosJson)
        {
            #region validacao usuario logado

            //se a sessão de usuário não estiver preenchida, direciona para a tela de login
            if (Session["UsuarioLogado"] == null)
            {
                return("erro");
            }

            //recebe o usuário logado
            usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

            #endregion

            DadosAtualizarStatusPedido dadosAtualizarPedido = new DadosAtualizarStatusPedido();
            dadosAtualizarPedido = JsonConvert.DeserializeObject <DadosAtualizarStatusPedido>(dadosJson);

            //variável para armazenar o retorno da api
            DadosRequisicaoRest retornoRequest = new DadosRequisicaoRest();

            //tratamento de erros
            try
            {
                //monta a url de chamada na api
                string urlPost = string.Format("/Pedido/AtualizarStatusPedido/{0}/", usuarioLogado.IdLoja);

                //realiza o post passando o usuário no body
                retornoRequest = rest.Post(urlPost, dadosAtualizarPedido);

                //se o status não for OK, uma exception é lançada e sera exibida na tela via alert
                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    return("erro");
                }

                //se o status do pedido for "na fila", não envia e-mail
                if (dadosAtualizarPedido.IdStatusPedido == 0)
                {
                    return("sucesso");
                }

                #region envia e-mail com o status

                string emailUsuario = "";

                #region busca o e-mail do usuário que realizou o pedido

                //monta a url de chamada na api
                string urlGet = string.Format("/Pedido/BuscarEmailUsuarioPedido/{0}/{1}", dadosAtualizarPedido.IdPedido, usuarioLogado.IdLoja);

                //busca o e-mail do usuário
                retornoRequest = rest.Get(urlGet);

                if (retornoRequest.HttpStatusCode == HttpStatusCode.OK)
                {
                    emailUsuario = JsonConvert.DeserializeObject <string>(retornoRequest.objeto.ToString());
                }
                else
                {
                    return("erro email");
                }


                #endregion

                DadosEnvioEmailUnitario dadosEmail = new DadosEnvioEmailUnitario
                {
                    From = string.Format("{0} <*****@*****.**>", usuarioLogado.NomeLoja),
                    To   = emailUsuario
                };

                if (dadosAtualizarPedido.IdStatusPedido == 0)
                {
                    dadosEmail.Subject = "Pedido na fila";
                    dadosEmail.Text    = string.Format(@"<html lang=""pt-br"" style=""margin-left: 10%; width: 80%; font-family: 'Open Sans';"">

                                                    <head>
                                                    <meta name=""viewport"" content=""width=device-width, initial-scale=1.0"">
                                                    </head>

                                                    <body>

                                                    <div class=""barra-brand"" style=""background-color: #bc2026; height: 50px; text-align: left; border: #fff;"" align=""left"">
	                                                    <p class=""brand"" style=""color: #fff; letter-spacing: 2px; text-transform: uppercase; padding: 13px;"">{0}</p>
                                                    </div>

                                                    <div class=""body"" style=""margin-top: 3em; text-align: center; border-left-width: 1px; border-left-color: #bc2026; border-left-style: dotted; border-right-width: 1px; border-right-color: #bc2026; border-right-style: dotted;"" align=""center"">
	                                                    <p>Olá, o seu pedido está na fila.</p>
                                                    </div>

                                                    <div class=""rodape"" style=""margin-top: 5em; background-color: #FCFCFF; padding: 2em;"">
	                                                    <p>Obrigado!</p>
	                                                    <p>Equipe {0}</p>
                                                    </div>

                                                    </body>

                                                    </html>", usuarioLogado.NomeLoja.ToUpper());
                }

                if (dadosAtualizarPedido.IdStatusPedido == 1)
                {
                    dadosEmail.Subject = "Pedido em andamento";
                    string mensagemBody = "Olá, o seu pedido está em andamento.";

                    dadosEmail.Text = string.Format(@"<html lang=""pt-br"" style=""margin-left: 10%; width: 80%; font-family: 'Open Sans';"">

                                                    <head>
                                                    <meta name=""viewport"" content=""width=device-width, initial-scale=1.0"">
                                                    </head>

                                                    <body>

                                                    <div class=""barra-brand"" style=""background-color: #bc2026; height: 50px; text-align: left; border: #fff;"" align=""left"">
	                                                    <p class=""brand"" style=""color: #fff; letter-spacing: 2px; text-transform: uppercase; padding: 13px;"">{0}</p>
                                                    </div>

                                                    <div class=""body"" style=""margin-top: 3em; text-align: center; border-left-width: 1px; border-left-color: #bc2026; border-left-style: dotted; border-right-width: 1px; border-right-color: #bc2026; border-right-style: dotted;"" align=""center"">
	                                                    <p>{1}</p>
                                                    </div>

                                                    <div class=""rodape"" style=""margin-top: 5em; background-color: #FCFCFF; padding: 2em;"">
	                                                    <p>Obrigado!</p>
	                                                    <p>Equipe {0}</p>
                                                    </div>

                                                    </body>

                                                    </html>", usuarioLogado.NomeLoja.ToUpper(), mensagemBody);
                }

                if (dadosAtualizarPedido.IdStatusPedido == 2)
                {
                    dadosEmail.Subject = "Pedido entregue";
                    string mensagemBody = "Olá, o seu pedido foi entregue.";

                    dadosEmail.Text = string.Format(@"<html lang=""pt-br"" style=""margin-left: 10%; width: 80%; font-family: 'Open Sans';"">

                                                    <head>
                                                    <meta name=""viewport"" content=""width=device-width, initial-scale=1.0"">
                                                    </head>

                                                    <body>

                                                    <div class=""barra-brand"" style=""background-color: #bc2026; height: 50px; text-align: left; border: #fff;"" align=""left"">
	                                                    <p class=""brand"" style=""color: #fff; letter-spacing: 2px; text-transform: uppercase; padding: 13px;"">{0}</p>
                                                    </div>

                                                    <div class=""body"" style=""margin-top: 3em; text-align: center; border-left-width: 1px; border-left-color: #bc2026; border-left-style: dotted; border-right-width: 1px; border-right-color: #bc2026; border-right-style: dotted;"" align=""center"">
	                                                    <p>{1}</p>
                                                    </div>

                                                    <div class=""rodape"" style=""margin-top: 5em; background-color: #FCFCFF; padding: 2em;"">
	                                                    <p>Obrigado!</p>
	                                                    <p>Equipe {0}</p>
                                                    </div>

                                                    </body>

                                                    </html>", usuarioLogado.NomeLoja.ToUpper(), mensagemBody);
                }

                if (dadosAtualizarPedido.IdStatusPedido == 3)
                {
                    dadosEmail.Subject = "Pedido cancelado";
                    string mensagemBody = "Olá, o seu pedido foi cancelado. Motivo do cancelamento: " + dadosAtualizarPedido.MotivoCancelamento;

                    dadosEmail.Text = string.Format(@"<html lang=""pt-br"" style=""margin-left: 10%; width: 80%; font-family: 'Open Sans';"">

                                                    <head>
                                                    <meta name=""viewport"" content=""width=device-width, initial-scale=1.0"">
                                                    </head>

                                                    <body>

                                                    <div class=""barra-brand"" style=""background-color: #bc2026; height: 50px; text-align: left; border: #fff;"" align=""left"">
	                                                    <p class=""brand"" style=""color: #fff; letter-spacing: 2px; text-transform: uppercase; padding: 13px;"">{0}</p>
                                                    </div>

                                                    <div class=""body"" style=""margin-top: 3em; text-align: center; border-left-width: 1px; border-left-color: #bc2026; border-left-style: dotted; border-right-width: 1px; border-right-color: #bc2026; border-right-style: dotted;"" align=""center"">
	                                                    <p>{1}</p>
                                                    </div>

                                                    <div class=""rodape"" style=""margin-top: 5em; background-color: #FCFCFF; padding: 2em;"">
	                                                    <p>Obrigado!</p>
	                                                    <p>Equipe {0}</p>
                                                    </div>

                                                    </body>

                                                    </html>", usuarioLogado.NomeLoja.ToUpper(), mensagemBody);
                }

                retornoRequest = rest.Post("Email/EnviarEmailUnitario", dadosEmail);

                if (retornoRequest.HttpStatusCode == HttpStatusCode.OK)
                {
                    return("sucesso");
                }
                else
                {
                    return("erro email");
                }

                #endregion
            }
            //se ocorrer algum erro inesperado lança a exception
            catch (Exception)
            {
                return("erro");
            }
        }
コード例 #10
0
        public ActionResult Autenticar(Usuario usuario)
        {
            //limpa a sessão de mensagem
            //Session["MensagemAutenticacao"] = null;

            #region limpa as viewbags de mensagem

            ViewBag.MensagemAutenticacao = null;

            #endregion

            //captura a loja em questão
            Session["dominioLoja"] = BuscarUrlLoja();

            //se não conseguir capturar a loja, direciona para a tela de erro
            if (Session["dominioLoja"] == null)
            {
                ViewBag.MensagemAutenticacao = "estamos com dificuldade em buscar dados no servidor. por favor, tente atualizar a página";
                return(View("Index", usuario));
            }

            if (string.IsNullOrEmpty(usuario.Email) || string.IsNullOrEmpty(usuario.Senha))
            {
                ViewBag.MensagemAutenticacao = "preencha o login e senha";
                return(View("Index", usuario));
            }


            string dominioLoja = Session["dominioLoja"].ToString();

            DadosRequisicaoRest retornoAutenticacao = new DadosRequisicaoRest();
            DadosRequisicaoRest retornoDadosUsuario = new DadosRequisicaoRest();

            string senha = null;

            try
            {
                senha         = usuario.Senha;
                usuario.Senha = CriptografiaMD5.GerarHashMd5(usuario.Senha);

                string urlPost = string.Format("/usuario/autenticar/{0}/'{1}'", TipoUsuario.Loja, dominioLoja);

                retornoAutenticacao = rest.Post(urlPost, usuario);

                //se o usuário for autenticado, direciona para a tela home
                if (retornoAutenticacao.HttpStatusCode == HttpStatusCode.Accepted)
                {
                    UsuarioLoja usuarioLogado = new UsuarioLoja();

                    try
                    {
                        //busca os dados do usuário
                        retornoDadosUsuario = rest.Post(string.Format("usuario/buscarPorEmail/{0}/{1}", TipoUsuario.Loja, dominioLoja), usuario);

                        //verifica se os dados do usuário foram encontrados
                        if (retornoDadosUsuario.HttpStatusCode != HttpStatusCode.OK)
                        {
                            throw new Exception();
                        }

                        //converte o usuario em objeto e seta a url da loja
                        usuarioLogado         = JsonConvert.DeserializeObject <UsuarioLoja>(retornoDadosUsuario.objeto.ToString());
                        usuarioLogado.UrlLoja = dominioLoja;

                        //armazena o usuário na sessão "usuarioLogado"
                        Session["usuarioLogado"] = usuarioLogado;

                        //limpa a sessão "usuarioLogin"
                        Session["usuarioLogin"] = null;

                        //se for o usuário for admin, direciona para a tela home
                        if (usuarioLogado.NivelPermissao == 1)
                        {
                            return(RedirectToAction("Index", "Home"));
                        }
                        //senão, direciona para a tela de pedidos
                        else
                        {
                            return(RedirectToAction("Index", "Pedido"));
                        }
                    }
                    //se não for possível consultar os dados do usuário
                    catch (Exception)
                    {
                        usuario.Senha = senha;
                        ViewBag.MensagemAutenticacao = "estamos com dificuldade em buscar dados no servidor. por favor, tente novamente";
                        return(View("Index", usuario));
                    }
                }
                else if (retornoAutenticacao.HttpStatusCode == HttpStatusCode.Unauthorized)
                {
                    usuario.Senha = senha;
                    ViewBag.MensagemAutenticacao = "usuário ou senha inválida";
                    return(View("Index", usuario));
                }

                //se for algum outro erro
                else
                {
                    usuario.Senha = senha;
                    ViewBag.MensagemAutenticacao = "não foi possível realizar o login. por favor, tente novamente";
                    return(View("Index", usuario));
                }
            }
            catch (Exception)
            {
                usuario.Senha = senha;
                ViewBag.MensagemAutenticacao = "não foi possível realizar o login. por favor, tente novamente";
                return(View("Index", usuario));
            }
        }