Here are the 2 options.
1. Umbreon has a lot of defense and sp. defense. With this, toxic has a likely chance of occurring since umbreon's defense is much higher than porygon2. But, the only downfall is that if your opponent has a lot of attack and is fast (like lucario), you might not be able to use it - seeing umbreon's not a very fast Pokemon.
2. With umbreon with moonlight, it can be very useful. I'm pretty sure moonlight restores more HP if it's darker outside - not 100% sure. But, you can give your umbreon both moonlight and toxic - therefore you can use it if your HP gets low. Also, umbreon is known as the "Moonlight Pokemon", so it's kind of a good choice to give him.
1. Porygon2 with eviolite is a great idea since he's not much of a defender - nor an attacker - mainly a sp. attacker. This way, you can level him up to lvl. 100 and get much more defense.
2. Giving porygon2 toxic is a much better choice since he's a much faster Pokemon meaning that he can use it faster, also he has less weaknesses than umbreon.
Based on this, I would prefer to choose porygon2 because of these reasonings, also the other moves and varieties he can learn - this is why he's harder to receive and more people prefer him than umbreon (not saying umbreon isn't great - which he is!)
Hope I helped! :)