Ejemplo n.º 1
0
        public IActionResult Evento(IFormCollection form)
        {
            Alugar alugar = new Alugar();

            alugar.Nome       = form["nome"];
            alugar.Telefone   = form["telefone"];
            alugar.Endereco   = form["endereco"];
            alugar.CPF        = form["cpf"];
            alugar.DataEvento = form["data-evento"];

            double precoDefinitivo = servicosRepository.ObterPrecoTotal(alugar.Servicos);

            alugar.PrecoTotal = precoDefinitivo;

            if (alugarRepository.Inserir(alugar))
            {
                return(View("Sucesso", new RespostaViewModel()
                {
                    NomeView = "Agendamento",
                    UsuarioEmail = ObterUsuarioSession(),
                    UsuarioNome = ObterUsuarioNomeSession()
                }));
            }
            else
            {
                return(View("Erro", new RespostaViewModel()));
            }
        }
        public IActionResult Registrar(IFormCollection form)
        {
            Agendamento agendamento = new Agendamento();

            Cliente cliente = new Cliente();

            cliente.Email               = form["email"];
            cliente.Cpf_cnpj            = form["cpf_cnpj"];
            cliente.Telefone            = form["telefone"];
            agendamento.NomeEvento      = form["nome_do_evento"];
            agendamento.DescricaoEvento = form["descricao"];
            agendamento.Servicos        = form["servicos"];
            agendamento.pubpriv         = form["priv_pub"];
            agendamento.formasPagamento = form["pagamento"];

            agendamento.cliente = cliente;

            agendamento.DataEvento = DateTime.Parse(form["dataevento"]);

            double precoDefinitivo = servicosRepository.ObterPrecoTotal(agendamento.Servicos);

            agendamento.PrecoTotal = precoDefinitivo;

            /* var urlFoto = $"wwwroot\\{PATH_FOTOS}";
             *
             * GravarFoto(form.Files, urlFoto);
             *
             * agendamento.ImagemEvento = urlFoto;*/

            if (agendamentoRepository.Inserir(agendamento))
            {
                return(View("Sucesso", new RespostaViewModel()
                {
                    NomeView = "Agendamento",
                    UsuarioEmail = ObterUsuarioSession(),
                    UsuarioNome = ObterUsuarioNomeSession()
                }));
            }
            else
            {
                return(View("Erro", new RespostaViewModel()));
            }
        }
        public IActionResult Registrar(IFormCollection form)
        {
            //Conversão int para ENUM.
            //TODO o que acontece quando tenta converter numero ENUM que não existe.
            int             privacidadeEnum;
            bool            converteu = int.TryParse(form["privacidade"], out privacidadeEnum);
            PrivacidadeEnum privacidade;

            //Método mais pratico (fazer com dicionário)
            if (converteu)
            {
                switch (privacidadeEnum)
                {
                case 0:
                    privacidade = (PrivacidadeEnum)PrivacidadeEnum.PRIVADO;
                    break;

                case 1:
                    privacidade = (PrivacidadeEnum)PrivacidadeEnum.PUBLICO;
                    break;

                default:
                    TempData["Agendamento"] = "Houve um erro na efetuação do Agendamento.";
                    return(RedirectToAction("Index", "Agendamento"));
                }
            }
            else
            {
                privacidade = (PrivacidadeEnum)PrivacidadeEnum.PRIVADO;  //Padrão PRIVADO.
            }

            Cliente c = new Cliente()
            {
                Nome  = form["nome"],
                Email = form["email"],
                CEP   = form["cep"],
                CPF   = form["cpf"],
                Tel   = form["telefone"]
            };

            string SvcAdicionais = form["sv-adc"];
            double SvcPreco      = servicosRepository.ObterPrecoTotal(SvcAdicionais);

            if (string.IsNullOrEmpty(SvcAdicionais))
            {
                SvcAdicionais = "NENHUM";
            }
            bool PagamentoValido = pagamentoRepository.VerificarMetodoPagamento(form["pagamento"]);

            if (!PagamentoValido)
            {
                TempData["Agendamento"] = "Método de pagamento inválido, tente novamente.";
                return(RedirectToAction("Index", "Agendamento"));
            }
            Agendamento a = new Agendamento();

            a.Cliente           = c;
            a.NomeEvento        = form["nome-evento"];
            a.TipoEvento        = form["evento"];
            a.Privacidade       = privacidade.ToString();
            a.QtdConvidados     = form["qtd-convidados"];
            a.DataDoEvento      = Convert.ToDateTime(form["data-evento"]);
            a.DataDoAgendamento = DateTime.Now.ToShortDateString();
            a.SvcAdicionais     = SvcAdicionais;
            a.DescricaoEvento   = form["descricao-evento"];
            a.FormaPagamento    = form["pagamento"];
            a.PrecoTotal        = SvcPreco;
            a.StatusString      = StatusAgendamentoEnum.PENDENTE.ToString();
            //TODO FEITO: BANNER (IMG) \/

            if (form.Files.Any())
            {
                var    agendamentoID = agendamentoRepository.ObterNextID();
                string urlBanner     = $"wwwroot\\{PATH_BANNER}\\{c.Email}\\{agendamentoID}\\";
                GravarImagem(form.Files, urlBanner);
                a.bannerURL = urlBanner;
            }
            else
            {
                a.bannerURL = $"wwwroot\\{PATH_BANNER}\\banner_padrao\\";
            }

            bool termos = form["termos"] == "1";

            if (termos)
            {
                if (agendamentoRepository.Inserir(a))
                {
                    // Manda para uma outra página específica com informações (Resumo) da compra.
                    return(View("_AgendamentoRealizado", new ResumoAgendamentoViewModel(a.DataDoEvento, a.SvcAdicionais, a.PrecoTotal)
                    {
                        NomeView = "Agendamento",
                        UsuarioEmail = ObterUsuarioSession(),
                        UsuarioNome = ObterUsuarioNomeSession(),
                        UsuarioTipo = ObterUsuarioTipoSession()
                    }));
                }
                else
                {
                    TempData["Agendamento"] = "Houve um erro na efetuação do agendamento. Tente novamente mais tarde.";
                    return(RedirectToAction("Index", "Agendamento"));
                }
            }
            else
            {
                TempData["Agendamento"] = "Você precisa aceitar os termos de uso.";
                return(RedirectToAction("Index", "Agendamento"));
            }
        }