public IActionResult Post(CompromissoCadastroModel model,
                                  [FromServices] ICompromissoRepository repository,
                                  [FromServices] IMapper mapper)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var compromisso = mapper.Map <Compromisso>(model);
                    repository.Inserir(compromisso);

                    return(Ok("Compromisso cadastrado com sucesso."));
                }
                catch (Exception e)
                {
                    return(StatusCode(500, e.Message));
                }
            }
            else
            {
                return(BadRequest());
            }
        }
        public IActionResult CadastroCompromisso(CompromissoCadastroModel model,
                                                 [FromServices] UsuarioRepository usuarioRepository,
                                                 [FromServices] CompromissoRepository compromissoRepository)
        {
            //verificar se todos os campos da model passaram nas regras de validação
            if (ModelState.IsValid)
            {
                try
                {
                    //buscar no banco de dados os dados do usuario autenticado atraves do email
                    var usuario = usuarioRepository.GetByEmail(User.Identity.Name);

                    var compromisso = new Compromisso();
                    compromisso.Titulo     = model.Titulo;
                    compromisso.Descricao  = model.Descricao;
                    compromisso.DataInicio = DateTime.Parse(model.DataInicio);
                    compromisso.HoraInicio = TimeSpan.Parse(model.HoraInicio);
                    compromisso.DataFim    = DateTime.Parse(model.DataFim);
                    compromisso.HoraFim    = TimeSpan.Parse(model.HoraFim);
                    compromisso.IdUsuario  = usuario.IdUsuario;
                    compromisso.Categoria  = model.Categoria;

                    //gravar o compromisso no banco de dados
                    compromissoRepository.Create(compromisso);

                    TempData["MensagemSucesso"] = $"Compromisso {compromisso.Titulo} cadastrado com sucesso.";
                    ModelState.Clear(); //limpar o conteudo do formulario
                }
                catch (Exception e)
                {
                    TempData["MensagemErro"] = e.Message;
                }
            }

            return(View());
        }