/// <summary>Gets the insert position.</summary>
    /// <param name="statement">The statement.</param>
    /// <returns>Returns the insert position.</returns>
    protected DocumentRange GetInsertPosition(IStatement statement)
    {
      var foreachStatement = statement as IUsingStatement;
      if (foreachStatement == null)
      {
        return DocumentRange.InvalidRange;
      }

      var factory = CSharpElementFactory.GetInstance(statement.GetPsiModule());

      var body = foreachStatement.Body;
      if (body == null)
      {
        foreachStatement.SetBody(factory.CreateEmptyBlock());
      }

      var block = foreachStatement.Body as IBlock;
      if (block == null)
      {
        block = factory.CreateEmptyBlock();
        block.AddStatementAfter(foreachStatement.Body, null);
        foreachStatement.SetBody(factory.CreateEmptyBlock());
      }

      return block.LBrace.GetDocumentRange().EndOffsetRange();
    }