示例#1
0
        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;
            }
        }
示例#2
0
 public ICommandResult VotoPost([FromBody] AdicionarVotoCommand command)
 {
     try
     {
         return(_handler.Handle(command));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }