ErrorResultTO TryExecute(IDSFDataObject dataObject, int update, ErrorResultTO allErrors) { allErrors.MergeErrors(_errorsTo); if (dataObject.IsDebugMode()) { var debugItem = new DebugItem(); AddDebugItem(new DebugEvalResult(Url, "URL", dataObject.Environment, update), debugItem); _debugInputs.Add(debugItem); } var colItr = new WarewolfListIterator(); var urlitr = new WarewolfIterator(dataObject.Environment.Eval(Url, update)); var headerItr = new WarewolfIterator(dataObject.Environment.Eval(Headers, update)); colItr.AddVariableToIterateOn(urlitr); colItr.AddVariableToIterateOn(headerItr); const int IndexToUpsertTo = 1; while (colItr.HasMoreData()) { var c = colItr.FetchNextValue(urlitr); var headerValue = colItr.FetchNextValue(headerItr); var headers = string.IsNullOrEmpty(headerValue) ? new string[0] : headerValue.Split(new[] { '\n', '\r', ';' }, StringSplitOptions.RemoveEmptyEntries); var headersEntries = new List <Tuple <string, string> >(); foreach (var header in headers) { var headerSegments = header.Split(':'); headersEntries.Add(new Tuple <string, string>(headerSegments[0], headerSegments[1])); if (dataObject.IsDebugMode()) { var debugItem = new DebugItem(); AddDebugItem(new DebugEvalResult(Headers, "Header", dataObject.Environment, update), debugItem); _debugInputs.Add(debugItem); } } var result = WebRequestInvoker.ExecuteRequest(Method, c, headersEntries); allErrors.MergeErrors(_errorsTo); var expression = GetExpression(IndexToUpsertTo); PushResultsToDataList(expression, result, dataObject, update); } return(allErrors); }
private int IncrementDataListCounter(IDSFDataObject dataObject, int update, ErrorResultTO allErrors, int counter, string c, List <Tuple <string, string> > headersEntries, bool timeoutSecondsError) { if (!timeoutSecondsError) { var result = WebRequestInvoker.ExecuteRequest(Method, c, headersEntries, TimeoutSeconds == 0 ? Timeout.Infinite : TimeoutSeconds * 1000 // important to list the parameter name here to see the conversion from seconds to milliseconds ); allErrors.MergeErrors(_errorsTo); PushResultsToDataList(Result, result, dataObject, update == 0 ? counter : update); counter++; } else { throw new ApplicationException("Execution aborted - see error messages."); } return(counter); }
/// <summary> /// When overridden runs the activity's execution logic /// </summary> /// <param name="context">The context to be used.</param> protected override void OnExecute(NativeActivityContext context) { _debugOutputs.Clear(); _debugInputs.Clear(); if (WebRequestInvoker == null) { return; } var dataObject = context.GetExtension <IDSFDataObject>(); var compiler = DataListFactory.CreateDataListCompiler(); var dlId = dataObject.DataListID; var allErrors = new ErrorResultTO(); var executionId = DataListExecutionID.Get(context); var toUpsert = Dev2DataListBuilderFactory.CreateStringDataListUpsertBuilder(true); toUpsert.IsDebug = dataObject.IsDebugMode(); InitializeDebug(dataObject); try { var expressionsEntry = compiler.Evaluate(executionId, enActionType.User, Url, false, out errorsTo); allErrors.MergeErrors(errorsTo); var headersEntry = compiler.Evaluate(executionId, enActionType.User, Headers, false, out errorsTo); allErrors.MergeErrors(errorsTo); if (dataObject.IsDebugMode()) { DebugItem debugItem = new DebugItem(); if (expressionsEntry == null) { AddDebugItem(new DebugItemStaticDataParams("", Url, "URL"), debugItem); } else { AddDebugItem(new DebugItemVariableParams(Url, "URL", expressionsEntry, executionId), debugItem); } _debugInputs.Add(debugItem); } var colItr = Dev2ValueObjectFactory.CreateIteratorCollection(); var urlitr = Dev2ValueObjectFactory.CreateEvaluateIterator(expressionsEntry); var headerItr = Dev2ValueObjectFactory.CreateEvaluateIterator(headersEntry); colItr.AddIterator(urlitr); colItr.AddIterator(headerItr); const int IndexToUpsertTo = 1; while (colItr.HasMoreData()) { var c = colItr.FetchNextRow(urlitr); var headerValue = colItr.FetchNextRow(headerItr).TheValue; var headers = string.IsNullOrEmpty(headerValue) ? new string[0] : headerValue.Split(new[] { '\n', '\r', ';' }, StringSplitOptions.RemoveEmptyEntries); var headersEntries = new List <Tuple <string, string> >(); foreach (var header in headers) { var headerSegments = header.Split(':'); headersEntries.Add(new Tuple <string, string>(headerSegments[0], headerSegments[1])); if (dataObject.IsDebugMode()) { DebugItem debugItem = new DebugItem(); AddDebugItem(new DebugItemVariableParams(Headers, "Header", headersEntry, executionId), debugItem); _debugInputs.Add(debugItem); } } var result = WebRequestInvoker.ExecuteRequest(Method, c.TheValue, headersEntries); allErrors.MergeErrors(errorsTo); var expression = GetExpression(IndexToUpsertTo); PushResultsToDataList(expression, toUpsert, result, dataObject, executionId, compiler, allErrors); } } catch (Exception e) { Dev2Logger.Log.Error("DSFWebGetRequest", e); allErrors.AddError(e.Message); } finally { if (allErrors.HasErrors()) { DisplayAndWriteError("DsfWebGetRequestActivity", allErrors); compiler.UpsertSystemTag(dlId, enSystemTag.Dev2Error, allErrors.MakeDataListReady(), out errorsTo); var expression = GetExpression(1); PushResultsToDataList(expression, toUpsert, null, dataObject, executionId, compiler, allErrors); } if (dataObject.IsDebugMode()) { DispatchDebugState(context, StateType.Before); DispatchDebugState(context, StateType.After); } } }
protected override void ExecuteTool(IDSFDataObject dataObject, int update) { _debugOutputs.Clear(); _debugInputs.Clear(); if (WebRequestInvoker == null) { return; } var allErrors = new ErrorResultTO(); InitializeDebug(dataObject); try { allErrors.MergeErrors(errorsTo); if (dataObject.IsDebugMode()) { DebugItem debugItem = new DebugItem(); AddDebugItem(new DebugEvalResult(Url, "URL", dataObject.Environment, update), debugItem); _debugInputs.Add(debugItem); } var colItr = new WarewolfListIterator(); var urlitr = new WarewolfIterator(dataObject.Environment.Eval(Url, update)); var headerItr = new WarewolfIterator(dataObject.Environment.Eval(Headers, update)); colItr.AddVariableToIterateOn(urlitr); colItr.AddVariableToIterateOn(headerItr); while (colItr.HasMoreData()) { var c = colItr.FetchNextValue(urlitr); var headerValue = colItr.FetchNextValue(headerItr); var headers = string.IsNullOrEmpty(headerValue) ? new string[0] : headerValue.Split(new[] { '\n', '\r', ';' }, StringSplitOptions.RemoveEmptyEntries); var headersEntries = new List <Tuple <string, string> >(); foreach (var header in headers) { var headerSegments = header.Split(':'); headersEntries.Add(new Tuple <string, string>(headerSegments[0], headerSegments[1])); if (dataObject.IsDebugMode()) { DebugItem debugItem = new DebugItem(); AddDebugItem(new DebugEvalResult(Headers, "Header", dataObject.Environment, update), debugItem); _debugInputs.Add(debugItem); } } bool timeoutSecondsError = false; if (!string.IsNullOrEmpty(TimeOutText)) { int timeoutval; if (int.TryParse(WarewolfDataEvaluationCommon.EvalResultToString(dataObject.Environment.Eval(TimeOutText, update)), out timeoutval)) { if (timeoutval < 0) { allErrors.AddError(string.Format("Value of TimeoutSecondsText out of range: please specify a value between 0 and {0}.", int.MaxValue)); timeoutSecondsError = true; } else { TimeoutSeconds = timeoutval; } } else { allErrors.AddError(string.Format("Value {0} for TimeoutSecondsText could not be interpreted as a numeric value.", TimeOutText)); timeoutSecondsError = true; } if (dataObject.IsDebugMode()) { DebugItem debugItem = new DebugItem(); AddDebugItem(new DebugEvalResult(String.IsNullOrEmpty(TimeOutText) ? "100" : TimeOutText, "Time Out Seconds", dataObject.Environment, update), debugItem); _debugInputs.Add(debugItem); } } if (!timeoutSecondsError) { var result = WebRequestInvoker.ExecuteRequest(Method, c, headersEntries, (TimeoutSeconds == 0 ? Timeout.Infinite : TimeoutSeconds * 1000) // important to list the parameter name here to see the conversion from seconds to milliseconds ); allErrors.MergeErrors(errorsTo); PushResultsToDataList(Result, result, dataObject, update); } else { throw new ApplicationException("Execution aborted - see error messages."); } } } catch (Exception e) { Dev2Logger.Log.Error("DSFWebGetRequest", e); allErrors.AddError(e.Message); } finally { if (allErrors.HasErrors()) { DisplayAndWriteError("DsfWebGetRequestActivity", allErrors); var errorString = allErrors.MakeDisplayReady(); dataObject.Environment.AddError(errorString); var expression = GetExpression(1); PushResultsToDataList(expression, null, dataObject, update); } if (dataObject.IsDebugMode()) { DispatchDebugState(dataObject, StateType.Before, update); DispatchDebugState(dataObject, StateType.After, update); } } }
protected override void ExecuteTool(IDSFDataObject dataObject, int update) { _debugOutputs.Clear(); _debugInputs.Clear(); if (WebRequestInvoker == null) { return; } var allErrors = new ErrorResultTO(); InitializeDebug(dataObject); try { allErrors.MergeErrors(errorsTo); if (dataObject.IsDebugMode()) { DebugItem debugItem = new DebugItem(); AddDebugItem(new DebugEvalResult(Url, "URL", dataObject.Environment, update), debugItem); _debugInputs.Add(debugItem); } var colItr = new WarewolfListIterator(); var urlitr = new WarewolfIterator(dataObject.Environment.Eval(Url, update)); var headerItr = new WarewolfIterator(dataObject.Environment.Eval(Headers, update)); colItr.AddVariableToIterateOn(urlitr); colItr.AddVariableToIterateOn(headerItr); const int IndexToUpsertTo = 1; while (colItr.HasMoreData()) { var c = colItr.FetchNextValue(urlitr); var headerValue = colItr.FetchNextValue(headerItr); var headers = string.IsNullOrEmpty(headerValue) ? new string[0] : headerValue.Split(new[] { '\n', '\r', ';' }, StringSplitOptions.RemoveEmptyEntries); var headersEntries = new List <Tuple <string, string> >(); foreach (var header in headers) { var headerSegments = header.Split(':'); headersEntries.Add(new Tuple <string, string>(headerSegments[0], headerSegments[1])); if (dataObject.IsDebugMode()) { DebugItem debugItem = new DebugItem(); AddDebugItem(new DebugEvalResult(Headers, "Header", dataObject.Environment, update), debugItem); _debugInputs.Add(debugItem); } } var result = WebRequestInvoker.ExecuteRequest(Method, c, headersEntries); allErrors.MergeErrors(errorsTo); var expression = GetExpression(IndexToUpsertTo); PushResultsToDataList(expression, result, dataObject, update); } } catch (Exception e) { Dev2Logger.Log.Error("DSFWebGetRequest", e); allErrors.AddError(e.Message); } finally { if (allErrors.HasErrors()) { DisplayAndWriteError("DsfWebGetRequestActivity", allErrors); var errorString = allErrors.MakeDisplayReady(); dataObject.Environment.AddError(errorString); var expression = GetExpression(1); PushResultsToDataList(expression, null, dataObject, update); } if (dataObject.IsDebugMode()) { DispatchDebugState(dataObject, StateType.Before, update); DispatchDebugState(dataObject, StateType.After, update); } } }