public IActionResult AlugarFilme(long id, [FromBody] long filmeId) { try { var filme = _filmeRepositorio.RecuperarPorId(filmeId); if (filme == null) { return(BadRequest("Id de filme inválido: " + filmeId)); } var cliente = _clienteRepositorio.RecuperarPorId(id); if (cliente == null) { return(BadRequest("Id de cliente inválido: " + id)); } if (cliente.Alugueis.Any(x => x.FilmeId == filme.Id && (x.DataExpiracao == null || x.DataExpiracao.Value >= DateTime.UtcNow))) { return(BadRequest("O filme já foi comprado: " + filme.Nome)); } _clienteServico.AlugarFilme(cliente, filme); _clienteRepositorio.Commitar(); return(Ok()); } catch (Exception e) { return(StatusCode(500, new { error = e.Message })); } }