public async Task <CursoViewModel> Buscar(int id)
        {
            var curso = await _consultaCurso.BuscarPorId(id);

            if (curso == null)
            {
                return(null);
            }

            var cursoViewModel = CursoFactory.MapearCursoViewModel(curso);

            return(cursoViewModel);
        }
        public async Task <IEnumerable <CursoViewModel> > Listar()
        {
            var listaDeCursos = await _consultaCurso.ListarTodosCursos();

            if (listaDeCursos == null)
            {
                return(null);
            }

            var listaCursoVm = CursoFactory.MapearListaCursoViewModel(listaDeCursos);

            return(listaCursoVm);
        }
        public async Task <IActionResult> Criar([FromBody] CursoViewModel cursoViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { mensagem = "O campo nome é obrigatório" }));
            }

            var curso = CursoFactory.MapearCurso(cursoViewModel);

            await _criarCurso.Executar(curso);

            return(Ok(new { mensagem = "Curso Criado com sucesso!" }));
        }
        public async Task <IActionResult> Alterar([FromBody] CursoViewModel cursoViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { mensagem = "O campo nome é obrigatório" }));
            }

            try
            {
                var curso = CursoFactory.MapearCurso(cursoViewModel);

                await _alterarCurso.Executar(cursoViewModel.Id, curso);

                return(Ok(new { mensagem = "Curso alterado com sucesso" }));
            }
            catch (System.Exception)
            {
                return(BadRequest(new { erro = "Erro ao alterar o curso" }));
            }
        }