public async Task <ActionResult> Create([Bind(Include = "ID,Cliente,Filme,dataLocacao,DataDevolucao")] Locacao locacao)
        {
            if (TempData["mensagem"] != null)

            {
                locacao.dataLocacao = DateTime.Today;
                db.Locacao.Add(locacao);
                await db.SaveChangesAsync();

                TempData.Remove("Mensagem");
                var locacaoCliente = db.Locacao.Include(l => l.Clientes).Include(l => l.Filmes).Where(f => f.Filme == locacao.Filme & f.Cliente == locacao.Cliente).OrderByDescending(f => f.dataLocacao);
                if (locacaoCliente.Count() > 0)
                {
                    foreach (var item in locacaoCliente)
                    {
                        if (item.DataDevolucao == null)
                        {
                            TempData["success"] = "Filme " + item.Filmes.Filme + " alugado pelo Cliente " + item.Clientes.Nome;
                            break;
                        }
                    }
                }


                return(RedirectToAction("Index"));
            }


            var locacaofilmes = db.Locacao.Include(l => l.Clientes).Include(l => l.Filmes).Where(f => f.Filme == locacao.Filme).OrderByDescending(f => f.dataLocacao);

            if (locacaofilmes.Count() > 0)
            {
                foreach (var item in locacaofilmes)
                {
                    if (item.DataDevolucao == null)
                    {
                        if (item.Cliente == locacao.Cliente)
                        {
                            ModelState.AddModelError("Filme", "Filme alugado por este Cliente no dia " + item.dataLocacao);
                            break;
                        }
                        else
                        {
                            ModelState.AddModelError("Filme", "Filme alugado pelo Cliente " + item.Clientes.Nome + " no dia " + item.dataLocacao);
                            break;
                        }
                    }
                    else
                    {
                        if (item.Cliente == locacao.Cliente)
                        {
                            ModelState.AddModelError("Filme", "Este Filme já foi alugado por este Cliente no dia " + item.dataLocacao + " e devolvido no dia " + item.DataDevolucao);
                            ViewBag.IncluirAssimMesmo = true;
                            TempData["mensagem"]      = "IncluirAssim Mesmo";
                        }
                    }
                }
            }

            if (ModelState.IsValid)
            {
                locacao.dataLocacao = DateTime.Today;
                db.Locacao.Add(locacao);
                await db.SaveChangesAsync();

                var locacaoCliente = db.Locacao.Include(l => l.Clientes).Include(l => l.Filmes).Where(f => f.Filme == locacao.Filme & f.Cliente == locacao.Cliente).OrderByDescending(f => f.dataLocacao);
                if (locacaoCliente.Count() > 0)
                {
                    foreach (var item in locacaoCliente)
                    {
                        if (item.DataDevolucao == null)
                        {
                            TempData["success"] = "Filme " + item.Filmes.Filme + " alugado pelo Cliente " + item.Clientes.Nome;
                            break;
                        }
                    }
                }
                return(RedirectToAction("Index"));
            }

            ViewBag.Cliente = new SelectList(db.Cliente, "ID", "Nome", locacao.Cliente);
            ViewBag.Filme   = new SelectList(db.Filmes, "ID", "Filme", locacao.Filme);
            return(View(locacao));
        }