ここの if 文ネストが深いので、可能ならリファクタしたほうが良かろうかと思いますが、どうでしょう？