Example #1
0
 public ICommandResult VotoPatch(int id, [FromBody] AtualizarVotoCommand command)
 {
     try
     {
         command.Id = id;
         return(_handler.Handle(command));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Example #2
0
        public ICommandResult Handle(AtualizarVotoCommand command)
        {
            try
            {
                if (!command.ValidarCommand())
                {
                    return(new CommandResult(false, "Por favor, corrija as inconsistências abaixo", command.Notifications));
                }

                if (!_repository.CheckId(command.Id))
                {
                    AddNotification("Id", "Este Id não está cadastrado! Impossível prosseguir com este Id.");
                }

                if (Invalid)
                {
                    return(new CommandResult(false, "Por favor, corrija as inconsistências abaixo", Notifications));
                }

                VotoQueryResult usuarioQR = _repository.Obter(command.Id);

                int     id      = usuarioQR.Id;
                Usuario usuario = new Usuario(usuarioQR.Usuario.Id);
                Filme   filme   = new Filme(command.IdFilme);

                Voto voto = new Voto(id, usuario, filme);

                if (voto.Id == 0)
                {
                    AddNotification("Id", "Id não está vinculado à operação solicitada");
                }

                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 (Invalid)
                {
                    return(new CommandResult(false, "Por favor, corrija as inconsistências abaixo", Notifications));
                }

                _repository.Atualizar(voto);

                return(new CommandResult(true, "Voto atualizado com sucesso!", new
                {
                    Id = voto.Id,
                    IdUsuario = voto.Usuario.Id,
                    IdFilme = voto.Filme.Id
                }));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }