public PartialViewResult Indicar(IndicacaoModel model)
        {
            ViewBag.Estabelecimentos = Context.Estabelecimentos
                                       .ToList()
                                       .OrderBy(e => e.Nome)
                                       .Select(e => new SelectListItem()
            {
                Text  = e.Nome,
                Value = e.Id.ToString()
            });

            if (ModelState.IsValid)
            {
                try
                {
                    var pessoa  = GetUsuario();
                    var usuario = Context.Pessoas.FirstOrDefault(e => e.Usuario == model.Email);
                    if (pessoa.Usuario == model.Email || usuario != null)
                    {
                        ModelState.AddModelError("Email", "Não foi possível indicar esse e-mail");
                        return(PartialView(model));
                    }
                    var indicacao = new Indicacao()
                    {
                        EmailDestino      = model.Email,
                        PessoaId          = pessoa.Id,
                        EstabelecimentoId = model.EstabelecimentoSelecionado.Value
                    };

                    Context.Indicacoes.Add(indicacao);
                    Context.SaveChanges();

                    var estabelecimento = Context.Estabelecimentos.Find(model.EstabelecimentoSelecionado.Value);

                    var usuarioEmail = ConfigurationManager.AppSettings["SendgridAccount"];
                    var senhaEmail   = ConfigurationManager.AppSettings["SendgridKey"];

                    var email = new SendGrid.SendGridMessage(
                        new MailAddress("*****@*****.**"),
                        new MailAddress[] { new MailAddress(model.Email) },
                        "Indicação de posto",
                        "<p>Você foi indicado para abastecer no posto " + estabelecimento.Nome + ", clique <a href=\"" + Url.Action("Cadastro", "Conta", new { email = model.Email }, Request.Url.Scheme) + "\">aqui</a> para se cadastrar</p>",
                        "Você foi indicado para abastecer no posto " + estabelecimento.Nome);
                    var client = new SendGrid.Web(new System.Net.NetworkCredential(usuarioEmail, senhaEmail));
                    client.Deliver(email);
                }
                catch (DbUpdateException)
                {
                    ModelState.AddModelError("Email", "Não foi possível indicar esse e-mail");
                    return(PartialView(model));
                }
                catch (Exception)
                {
                }
            }

            return(PartialView());
        }
        public PartialViewResult Indicar()
        {
            var model = new IndicacaoModel();

            ViewBag.Estabelecimentos = Context.Estabelecimentos
                                       .ToList()
                                       .OrderBy(e => e.Nome)
                                       .Select(e => new SelectListItem()
            {
                Text  = e.Nome,
                Value = e.Id.ToString()
            });

            return(PartialView(model));
        }