private void WrapInTryFunction_Apply(Object sender, ApplyContentEventArgs ea)
        {
            // INITIALIZE
            Class activeClass = CodeRush.Source.ActiveClass;
            Method activeMethod = CodeRush.Source.ActiveMethod;
            var builder = new ElementBuilder();

            Logger.Log("WITF:Builder Built");

            var method = builder.AddMethod(activeClass, "bool", "Try" + activeMethod.Name);
            method.IsStatic = activeMethod.IsStatic;
            Logger.Log("WITF:Method Created");

            // PARAMS
            foreach (Param param in activeMethod.Parameters)
            {
                method.Parameters.Add(new Param(param.ParamType, param.Name));
            }
            Param resultParam = builder.BuildParameter(activeMethod.GetTypeName(), "result", ArgumentDirection.Out);
            method.Parameters.Add(resultParam);
            Logger.Log("WITF:Params Added");

            // METHOD CALL
            var arguments = new List<string>();
            foreach (IParameterElement SourceParam in activeMethod.Parameters)
            {
                arguments.Add(SourceParam.Name);
            }
            Logger.Log("WITF:Arguments Built");

            var methodCall = builder.BuildMethodCall(activeMethod.Name, arguments.ToArray());
            Logger.Log("WITF:Methodcall Added");

            var Try = builder.AddTry(method);
            Try.AddNode(builder.BuildAssignment("result", methodCall));
            Try.AddNode(builder.BuildReturn("true"));
            Logger.Log("WITF:Try Added");

            var ExCatch = builder.AddCatch(method);
            ExCatch.AddNode(builder.BuildAssignment("result", CodeRush.Language.GetNullReferenceExpression()));
            ExCatch.AddNode(builder.BuildReturn("false"));
            Logger.Log("WITF:Catch Added");

            // RENDER METHOD
            activeClass.AddNode(method);
            var Code = CodeRush.CodeMod.GenerateCode(method, false);
            Logger.Log("WITF:Code Generated");

            int LastLine = activeMethod.Range.End.Line;
            Logger.Log(String.Format("WITF:Last Line calculated = {0}", LastLine));

            SourcePoint InsertionPoint = new SourcePoint(LastLine + 1, 1);
            Logger.Log(String.Format("WITF:InsertionPoint Calculated=(Line:{0},Offset:{1})",
                                     InsertionPoint.Line, InsertionPoint.Offset));

            var newMethodRange = CodeRush.Documents.ActiveTextDocument.InsertText(InsertionPoint, Code);
            Logger.Log("WITF:Code Inserted");

            CodeRush.Documents.Format(newMethodRange);
            Logger.Log("WITF:Code Formatted");
        }