public ActionResult Edit(LiberacaoViewModel liberacao)
        {
            try
            {
                //  if (liberacao.PacienteId == 3)
                //{
                //  ModelState.AddModelError(string.Empty, @"Paciente Selecionado Invalido");

                //return View(liberacao);
                //}

                if (ModelState.IsValid)
                {
                    var liberacaoDomain = Mapper.Map <LiberacaoViewModel, Liberacao>(liberacao);
                    _liberacaoApp.Update(liberacaoDomain);

                    TempData["success"] = "Liberação editada com sucesso.";
                    return(RedirectToAction("Index"));
                }


                ViewBag.PacienteId     = listaPaciente(liberacao.PacienteId);
                ViewBag.ProfissionalId = listaProfissional(liberacao.ProfissionalId);

                return(View(liberacao));
            }
            catch (Exception)
            {
                TempData["error"] = "Esta liberação não pode ser editada.";
                return(View(liberacao));
            }
        }
        public ActionResult Create(LiberacaoViewModel liberacao)
        {
            //if (liberacao.PacienteId == 1)
            //{
            //  ModelState.AddModelError(string.Empty, @"Paciente Selecionado Invalido");

            //return View(liberacao);
            //}

            if (ModelState.IsValid)
            {
                try
                {
                    var liberacaoDomain = Mapper.Map <LiberacaoViewModel, Liberacao>(liberacao);

                    if (!String.IsNullOrEmpty(liberacaoDomain.MedicoEncaminhante))
                    {
                        liberacaoDomain.MedicoEncaminhante = liberacaoDomain.MedicoEncaminhante.ToUpper();
                    }

                    liberacaoDomain.QuantidadeRealizadaExterno = liberacaoDomain.QuantidadeRealizada;
                    if (liberacao.PacienteId == 1136) // nao deixa salvar paciente selecione
                    {
                        //ModelState.AddModelError(string.Empty, @"Paciente Selecionado Invalido");
                        TempData["error"] = "O paciente Selecionado é inválido";
                        popularviewBag();
                        return(View(liberacao));
                    }

                    if (liberacao.ProfissionalId == 2) // nao deixa salvar profissional selecione
                    {
                        //ModelState.AddModelError(string.Empty, @"Profissional Selecionado Invalido");
                        TempData["error"] = "O profissional Selecionado é inválido";
                        popularviewBag();
                        return(View(liberacao));
                    }

                    _liberacaoApp.Add(liberacaoDomain);

                    for (int i = 0; i < liberacaoDomain.QuantidadeTotal - liberacaoDomain.QuantidadeRealizada; i++)
                    {
                        var consultaDomain = new Consulta();
                        consultaDomain.DataCadastro  = DateTime.Now;
                        consultaDomain.LiberacaoId   = liberacaoDomain.LiberacaoId;
                        consultaDomain.Convenio      = "Unimed";
                        consultaDomain.Status        = "Pré-agendado";
                        consultaDomain.ValorConsulta = 0;
                        consultaDomain.ValorConvenio = 0;
                        consultaDomain.ValorCopart   = 0;

                        consultaDomain.ProfissionalId = liberacaoDomain.ProfissionalId;

                        _consultaApp.Add(consultaDomain);
                    }

                    TempData["success"] = "Liberação incluída com sucesso.";
                    return(RedirectToAction("Details", "Liberacoes", new { id = liberacaoDomain.LiberacaoId }));
                }
                catch (Exception)
                {
                    TempData["error"] = "Não foi possível incluir a liberação.";
                    return(View(liberacao));
                }

                //liberacaoDomain.Paciente = _pacienteApp.GetById(liberacaoDomain.PacienteId);

                //var liberacaoViewModel = Mapper.Map<Liberacao, LiberacaoViewModel>(liberacaoDomain);

                //var consultasViewModel = Mapper.Map<IEnumerable<Consulta>, IEnumerable<ConsultaViewModel>>(_consultaApp.GetAll());

                //consultasViewModel = consultasViewModel.Where(s => s.LiberacaoId == liberacaoDomain.LiberacaoId);

                //var tuple = new Tuple<LiberacaoViewModel, IEnumerable<ConsultaViewModel>>(liberacaoViewModel, consultasViewModel);

                //return View("Details",tuple);
            }
            ViewBag.PacienteId = listaPaciente(1);

            try
            {
                var nivelAcesso    = (int)Session["nivelAcesso"];
                int IdProfissional = 2;

                if (nivelAcesso == 2)
                {
                    IdProfissional = (int)Session["idProfissional"];
                }

                ViewBag.ProfissionalId = listaProfissional(IdProfissional);
                return(View(liberacao));
            }
            catch (Exception)
            {
                TempData["error"] = "Não foi possível incluir a liberação.";
                return(View(liberacao));
            }
        }