public IResponseWriter ToResponseWriter(IStringResponseWriterFactory stringResponseWriterFactory) { if (Exception != null) { return(new ExceptionResponseWriter(HttpStatusCode.InternalServerError, Content)); } return(stringResponseWriterFactory.New(Content, ContentType)); }
public IResponseWriter CreateResponseWriter(IStringResponseWriterFactory stringResponseWriterFactory) { var responseData = CreateResponse(); return(responseData.ToResponseWriter(stringResponseWriterFactory)); }
public IResponseWriter CreateResponseWriter(IStringResponseWriterFactory stringResponseWriterFactory) { var dataObject = _executionDto.DataObject; var esbExecuteRequest = _executionDto.Request; var executionDlid = _executionDto.DataListIdGuid; var workspaceGuid = _executionDto.WorkspaceID; var serviceName = _executionDto.ServiceName; var resource = _executionDto.Resource; var formatter = _executionDto.DataListFormat; var webRequest = _executionDto.WebRequestTO; var serializer = _executionDto.Serializer; var allErrors = _executionDto.ErrorResultTO; bool wasInternalService = esbExecuteRequest?.WasInternalService ?? false; if (!wasInternalService) { dataObject.DataListID = executionDlid; dataObject.WorkspaceID = workspaceGuid; dataObject.ServiceName = serviceName; if (dataObject.ExecutionException is null) { _executionDto.PayLoad = GetExecutePayload(dataObject, resource, webRequest, ref formatter); } else { var content = GetExecuteExceptionPayload(dataObject, resource, webRequest, ref formatter); return(new ExceptionResponseWriter(System.Net.HttpStatusCode.InternalServerError, content)); } } else { // internal service request we need to return data for it from the request object _executionDto.PayLoad = string.Empty; var msg = serializer.Deserialize <ExecuteMessage>(esbExecuteRequest.ExecuteResult); if (msg != null) { _executionDto.PayLoad = msg.Message.ToString(); } // out fail safe to return different types of data from services if (string.IsNullOrEmpty(_executionDto.PayLoad)) { _executionDto.PayLoad = esbExecuteRequest.ExecuteResult.ToString(); } } if (dataObject.Environment.HasErrors()) { Dev2Logger.Error(GlobalConstants.ExecutionLoggingResultStartTag + (_executionDto.PayLoad ?? "").Replace(Environment.NewLine, string.Empty) + GlobalConstants.ExecutionLoggingResultEndTag, dataObject.ExecutionID.ToString()); } else { Dev2Logger.Debug(GlobalConstants.ExecutionLoggingResultStartTag + (_executionDto.PayLoad ?? "").Replace(Environment.NewLine, string.Empty) + GlobalConstants.ExecutionLoggingResultEndTag, dataObject.ExecutionID.ToString()); } if (!dataObject.Environment.HasErrors() && wasInternalService) { TryGetFormatter(ref formatter); } Dev2DataListDecisionHandler.Instance.RemoveEnvironment(dataObject.DataListID); CleanUp(_executionDto); return(stringResponseWriterFactory.New(_executionDto.PayLoad, formatter.ContentType)); }