public async Task <IActionResult> Edit(string id, [FromForm] AgentePatogenicoViewModel agentePatogenicoViewModel)
        {
            if (id != agentePatogenicoViewModel.AgentePatogenicoId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    using var transacao = _varianteAgentePatogenicoDao.ObterNovaTransacao();

                    //Exclui Varinates foram excluidas na tela
                    _varianteAgentePatogenicoDao.ExcluirPorAgentePatogenicoNaoExistentesLista(int.Parse(agentePatogenicoViewModel.AgentePatogenicoId),
                                                                                              agentePatogenicoViewModel.ListaVarianteAgentePatogenicoViewModel
                                                                                              .Where(v => !string.IsNullOrWhiteSpace(v.VarianteAgentePatogenicoId))
                                                                                              .Select(i => int.Parse(i.VarianteAgentePatogenicoId)).ToList());

                    _agentePatogenicoDao.Atualizar(_mapper.Map <AgentePatogenico>(agentePatogenicoViewModel));

                    _agentePatogenicoDao.SalvarAlteracoesContexto();


                    transacao.Commit();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AgentePatogenicoExists(int.Parse(agentePatogenicoViewModel.AgentePatogenicoId)))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }

            ViewData["listaTipoAgentePatogenico"] = await _tipoAgentePatogenicoDao.RecuperarTodosAsync();

            ViewData["ListaPais"] = await _paisDao.RecuperarTodosAsync();

            ViewData["ExibirBotoesGrid"] = true;

            return(View(agentePatogenicoViewModel));
        }
        public async Task <IActionResult> Create([FromForm] AgentePatogenicoViewModel agentePatogenicoViewModel)
        {
            if (ModelState.IsValid)
            {
                using var transacao = _agentePatogenicoDao.ObterNovaTransacao();

                _agentePatogenicoDao.Incluir(_mapper.Map <AgentePatogenico>(agentePatogenicoViewModel));
                _agentePatogenicoDao.SalvarAlteracoesContexto();

                transacao.Commit();

                return(RedirectToAction(nameof(Index)));
            }

            ViewData["listaTipoAgentePatogenico"] = await _tipoAgentePatogenicoDao.RecuperarTodosAsync();

            ViewData["ListaPais"] = await _paisDao.RecuperarTodosAsync();

            ViewData["ExibirBotoesGrid"] = true;

            return(View(agentePatogenicoViewModel));
        }