public ICommandResult Handle(AdicionarVotoCommand command) { try { if (!command.ValidarCommand()) { return(new CommandResult(false, "Por favor, corrija as inconsistências abaixo", command.Notifications)); } int id = 0; Usuario usuario = new Usuario(command.IdUsuario); Filme filme = new Filme(command.IdFilme); Voto voto = new Voto(id, usuario, filme); if (voto.Usuario.Id == 0) { AddNotification("Id Usuário", "Id não está vinculado à operação solicitada"); } if (voto.Filme.Id == 0) { AddNotification("Id Filme", "Id não está vinculado à operação solicitada"); } if (!_repositoryUsuario.CheckId(voto.Usuario.Id)) { AddNotification("Id Usuário", "Este Id Usuário não está cadastrado! Impossível prosseguir com este Id Usuário."); } if (!_repositoryFilme.CheckId(voto.Filme.Id)) { AddNotification("Id Filme", "Este Id Filme não está cadastrado! Impossível prosseguir com este Id Filme."); } if (_repository.CheckUsuarioVotou(voto.Usuario.Id)) { AddNotification("Id Usuário", "Este Id Usuário já possui um voto registrado."); } if (Invalid) { return(new CommandResult(false, "Por favor, corrija as inconsistências abaixo", Notifications)); } id = _repository.Salvar(voto); return(new CommandResult(true, "Voto gravado com sucesso!", new { Id = id, IdUsuario = voto.Usuario.Id, IdFilme = voto.Filme.Id })); } catch (Exception ex) { throw ex; } }
public ICommandResult VotoPost([FromBody] AdicionarVotoCommand command) { try { return(_handler.Handle(command)); } catch (Exception ex) { throw ex; } }