private IEnumerable <string> download(Request requestParams) { if (String.IsNullOrWhiteSpace(requestParams.DownloadFuncCode)) { return(new [] { Download(requestParams) }); } if (requestParams.DownloadFunc == null) { CompilerErrorCollection errors; RequestDownloadFuncBase obj; var code = String.Format(codeTemplate, requestParams.DownloadFuncCode); if (!_compiler.CompileClass(ref code, true, out obj, out errors)) { Log.Add(RecType.UserError, "Compile errors:\r\n" + CSharpCompiler.ErrorsToString(errors, code)); return(null); } if (errors.Count > 0) { Log.Add(RecType.UserWarning, "Compile errors:\r\n" + CSharpCompiler.ErrorsToString(errors, code)); } requestParams.DownloadFunc = obj.Func; } if (requestParams.DownloadFunc == null) { return(null); } var preparedRequestParams = (Request)requestParams.Clone(); return(requestParams.DownloadFunc(preparedRequestParams)); }