public ActionResult Contato(string nome, string email, string texto)
 {
     try
     {
         EnviarMensagem em = new EnviarMensagem("*****@*****.**", "*****@*****.**", "Vindo do Sistema de Armazem", texto+"\n\n"+email, nome);
         em.SubmeterEmail();
         TempData["certo"] = "Enviado com Sucesso!";
         return View();
     }
     catch (Exception ex)
     {
         TempData["certo"] = "Falha no envio!. Erro: " + ex.Message;
         return View();
     }
 }
        public ActionResult Cadastrar(string nome, string razao, string titular, string login, string senha,
            string senha2, string email, string telefone, string celular, string cep, string rua,
            string bairro, string cidade, string estado, string pais, string numero, string grupo)
        {
            try
            {
                Cliente cliente = new Cliente()
                {
                    nome = nome,
                    razao = razao,
                    titular = titular,
                    login = login,
                    senha = senha,
                    email = email,
                    telefone = telefone,
                    celular = celular,
                    cep = cep,
                    rua = rua,
                    bairro = bairro,
                    cidade = cidade,
                    estado = estado,
                    pais = pais,
                    numero = numero,
                    grupo = grupo
                };


                clienteRepository.Add(cliente);

                EnviarMensagem em = new EnviarMensagem("*****@*****.**", email, "Vindo do Sistema de Armazem", String.Format("Obrigado por se cadastrar em nosso sistema!\n\nSeus dados de acesso são,\nLogin: {0}\nSenha: {1}", login, senha), "Daniel");
                em.SubmeterEmail();

                TempData["certo"] = "Cadastrado com sucesso!. Um e-mail contendo seu login e senha foram enviados para o seu e-mail do cadastro.";
                return View();
            }
            catch (Exception ex)
            {
                TempData["certo"] = "Falha no cadastro. Erro: " + ex.Message;
                return View();
            }
        }
        public JsonResult PaineldeControleAdmin(int pedidoId)
        {
            ClienteRepository clienteRepository = new ClienteRepository();

            PedidoRepository pedidoRepository = new PedidoRepository();
            var pedido = pedidoRepository.Buscar(pedidoId);
            var cliente = clienteRepository.Buscar(pedido.clienteId);
            pedido.ckstatus = true;
            pedidoRepository.Update(pedido);
            EnviarMensagem em = new EnviarMensagem("*****@*****.**", cliente.email, "Vindo do Sistema de Armazem", String.Format("Olá {0},\n\nSeu pedido acaba de ter seu status alterado para PAGO!\n\nOs dados do seu pedido são,\nCliente: {0}\nProduto: {7}\nClasse Prod: {1}\nSubClasse Prod: {2}\nData de Início: {3}\nData de Fim: {4}\nValor total da quantia paga: {5}\nStatus do pedido: {6}", cliente.nome, pedido.classeId, pedido.subclasseId, pedido.dtInicio, pedido.dtFim, pedido.valorTotal, "Pago",pedido.produto), "Daniel");
            em.SubmeterEmail();

            return Json(new { mensagem = "Status de pagamento alterado com sucesso!" });
        }
        public ActionResult Simulacao(string produto, string classe, string subclasse, string armazenagem, int idarmazem, int qtdarmazem,
            DateTime dtInicio, DateTime dtFim)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(classe) || string.IsNullOrWhiteSpace(subclasse) || string.IsNullOrWhiteSpace(subclasse) || string.IsNullOrWhiteSpace(armazenagem) || string.IsNullOrWhiteSpace(produto))
                {
                    TempData["erro"] = "Nao deixe espacos em branco!";
                    return View();
                }
                if (DateTime.Now.Ticks > dtInicio.Ticks)
                {
                    TempData["erro"] = "A data de inicio nao pode ser menor que a data de hoje!";
                    return View();
                }
                if (dtFim.Ticks <= dtInicio.Ticks)
                {
                    TempData["erro"] = "A data de Fim nao pode ser menor ou igual a data de Inicio!";
                    return View();
                }
                if (qtdarmazem <= 0)
                {
                    TempData["erro"] = "Quantidade de espaco nao pode ser zero ou vazia!";
                    return View();
                }
                if (Negocio.armazemTemEspacoPraIsso(qtdarmazem, idarmazem))
                {
                    var dias = Negocio.retornaDiferencaEntreDuasDatas(dtFim, dtInicio);
                    decimal valorTotal = Convert.ToInt32(((dias * 10) * qtdarmazem) + 1000);

                    if (Session["User"] != null)
                    {
                        PedidoRepository pedidoRepository = new PedidoRepository();
                        ArmazemRepository armazemRepository = new ArmazemRepository();
                        Armazem armazem = new Armazem();

                        var nome = ((Cliente)(Session["User"])).nome;
                        var email = ((Cliente)(Session["User"])).email;
                        var clienteID = ((Cliente)(Session["User"])).clienteId;

                        armazem.clienteId = clienteID;
                        armazem.usadoArmazem = qtdarmazem;
                        armazem.tamanhoArmazemId = idarmazem;
                        //armazemRepository.Add(armazem);

                        Pedido pedido = new Pedido()
                        {
                            clienteId = clienteID,
                            classeId = Convert.ToInt32(classe),
                            subclasseId = Convert.ToInt32(subclasse),
                            armazenagemId = Convert.ToInt32(armazenagem),
                            produto = produto,
                            armazem = armazem,
                            dtInicio = dtInicio,
                            dtFim = dtFim,
                            valorTotal = valorTotal,
                            ckstatus = false
                        };

                        pedidoRepository.Add(pedido);

                        string msg = "Valor total a ser pago e: " + valorTotal + "\nOs dados do seu pedido, serao enviados para o seu e-mail.\nVerifique sua caixa de entrada.";
                        EnviarMensagem em = new EnviarMensagem("*****@*****.**", email, "Vindo do Sistema de Armazem", String.Format("Olá {0},\n\nObrigado por realizar o pedido em nosso sistema!\n\nOs dados do seu pedido são,\nCliente: {0}\nProduto: {8}\nClasse Prod: {1}\nSubClasse Prod: {2}\nID do Armazem: {3}\nData de Início: {4}\nData de Fim: {5}\nValor total a ser pago: {6}\nStatus do pedido: {7}", nome, classe, subclasse, idarmazem, dtInicio, dtFim, valorTotal, "Não pago",produto), "Daniel");
                        em.SubmeterEmail();
                        TempData["certo"] = msg;
                        return View("PaineldeControleUsuario");
                    }
                    else
                    {
                        dias = Negocio.retornaDiferencaEntreDuasDatas(dtFim, dtInicio);
                        valorTotal = Convert.ToInt32(((dias * 10) * qtdarmazem) + 1000);
                        string msg = "Valor total a ser pago e: " + valorTotal;
                        TempData["certo"] = msg;
                        return View();
                    }

                }
                else
                {
                    TempData["erro"] = "Falha na simulacao! Voce selecionou mais espaco que o disponivel.";
                    return View();
                }

            }
            catch (Exception ex)
            {
                TempData["erro"] = "Falha na simulação. Erro: " + ex.Message;
                return View();
            }
        }