Ejemplo n.º 1
0
        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));
        }