コード例 #1
0
            public IResponseWriter ToResponseWriter(IStringResponseWriterFactory stringResponseWriterFactory)
            {
                if (Exception != null)
                {
                    return(new ExceptionResponseWriter(HttpStatusCode.InternalServerError, Content));
                }

                return(stringResponseWriterFactory.New(Content, ContentType));
            }
コード例 #2
0
        public IResponseWriter CreateResponseWriter(IStringResponseWriterFactory stringResponseWriterFactory)
        {
            var responseData = CreateResponse();

            return(responseData.ToResponseWriter(stringResponseWriterFactory));
        }
コード例 #3
0
ファイル: ExecutionDto.cs プロジェクト: Year-2019-20/Warewolf
        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));
        }