public INode BuildContent(IReportControllerExtension extension, Controller controller){
     var content = Stub.Create();
     SetValue("content", content);
     Extension = extension;
     Extension.CustomContentPreparatorPrepare(this);
     CustomPrepare();
     processBrail(controller);
     return content;
 }
        public INode BuildContent(IReportControllerExtension extension, Controller controller){
            Extension = extension;
            var content = Stub.Create();
            var boo = Boo = buildEvaluator();


            SetupBooValues(boo, extension, controller, content);

            foreach (var booPath in GetBooPaths(controller, GetBooNames(controller))){
                try{
                    boo.EvaluateFile(booPath);
                }
                catch (BooErrorException ex){
                    writeOutErrors(content, ex);
                    break;
                }
            }
            return content;
        }
        private void PrepareReportHandler(string reportCode){
            
            var reportName = reportCode + ".report";
            IReportControllerExtension extension = null;
            try{
                extension = Container.get<IReportControllerExtension>(reportName);
            }
            catch (Exception){
                extension = Container.get<IReportControllerExtension>("default.report");
            }

            var def = ReportSetHelper.GetAll().ToArray().FirstOrDefault(rd => reportCode == rd.Code);
            extension.Task = this.task;

            extension.Definition = def;


            ReportHandler = extension;
            if (null == ReportHandler){
                throw new Exception("Нет отчета с именем " + reportCode);
            }

            if (null != ReportHandler){
                Helpers.Add("Report", ReportHandler);
            }
        }
 protected void SetupBooValues(BooEval boo, IReportControllerExtension extension, Controller controller,
                               Stub content){
     SetValue("content", content);
     customBooSetup(boo, controller);
     Extension.CustomContentPreparatorPrepare(this);
 }