I agree with everything Mala said in her piece on this subject. But, it's not just Sonny's monstrous behavior in this half hour. It's the whole story. We knew from the day he was revealed to be an undercover cop that this is what would happen. Every single person in this little community around Sonny is responsible for this except for Carly & Morgan. Each person that has known Dante's identity & said nothing shares the responsibility with Sonny. Olivia & Jax especially. Time after time, from the day she learned she was pregnant 20 something years ago, Liv could've prevented this by simply telling Sonny the truth. In trying to protect her son from the danger of Sonny's world, she ironically sealed his fate. She had another chance when he graduated police academy. Yet she said nothing as he dreamed of the day he'd avenge his imagined father by arresting his real one. Then, when she decided to stay in PC, she had another chance to prevent this. Then, when Dante told her why he was there. Only twice did she try to stop this. She guilted Ronnie into taking him off the case & then, she went to Agent Rainer, who'd already been proven to be untrustworthy. All she had to do was tell Sonny Dominic was her son.
Jax has a huge share of the blame because he went behind his friend's back & practically painted a bull's eye on Dante's back by getting him back on the case. Then, knowing the truth about Claudia's death, he set about framing Sonny & supplying false evidence of his guilt. Worst was that he didn't even try to warn Dante that his cover had been blown, practically guaranteeing Sonny would shoot Dante.
Dante, himself, shares some of the blame. He had a way out. All he had to do was say he couldn't objectively do his job because his mother had a longstanding personal history with Sonny & that he had developed a personal friendship with Sonny's children.
Finally, there's Sonny. He learned absolutely nothing from when his "shoot first, think later" mentality put Carly in a coma or from when Claudia's "shoot first, think later" mentality put Michael in a coma for over a year & continues to cause the child emotional damage. He didn't even know for sure that Dominic was a cop. All he had, much like PCPD has against him, was a lot of circumstantial evidence. He didn't even bother to learn who Dominic Pirelli really was & that should cost him everything. But, because GH confuses their love for MB with what Sonny really is, this will actually be advantageous for Sonny & instead of losing everyone he loves, he'll gain a new son & probably get the mother of the son he shot, as well. For how coldbloodedly he shot an unarmed man, it's time Sonny really paid for his crimes, with his own pain. Not someone else's.