コード例 #1
0
        protected override Guid ExecutionImpl(IEsbChannel esbChannel, IDSFDataObject dataObject, string inputs, string outputs, out ErrorResultTO tmpErrors)
        {
            tmpErrors = new ErrorResultTO();
            ErrorResultTO invokeErrors;
            var           compiler            = DataListFactory.CreateDataListCompiler();
            var           oldID               = dataObject.DataListID;
            var           webserviceExecution = GetNewWebserviceExecution(dataObject);

#pragma warning disable 168
            var remainingMappings = esbChannel.ShapeForSubRequest(dataObject, inputs, outputs, out invokeErrors);
#pragma warning restore 168
            tmpErrors.MergeErrors(invokeErrors);

            if (webserviceExecution != null && !tmpErrors.HasErrors())
            {
                webserviceExecution.InstanceOutputDefintions = outputs; // set the output mapping for the instance ;)
                var result = webserviceExecution.Execute(out invokeErrors);
                tmpErrors.MergeErrors(invokeErrors);

                // Adjust the remaining output mappings ;)
                compiler.SetParentID(dataObject.DataListID, oldID);

                compiler.ConvertFrom(dataObject.DataListID, DataListFormat.CreateFormat(GlobalConstants._XML_Without_SystemTags), enTranslationDepth.Data, out invokeErrors);
                tmpErrors.MergeErrors(invokeErrors);
                compiler.ConvertFrom(oldID, DataListFormat.CreateFormat(GlobalConstants._XML_Without_SystemTags), enTranslationDepth.Data, out invokeErrors);
                tmpErrors.MergeErrors(invokeErrors);
                return(result);
            }
            return(oldID);
        }
コード例 #2
0
        protected override Guid ExecutionImpl(IEsbChannel esbChannel, IDSFDataObject dataObject, string inputs, string outputs, out ErrorResultTO errors)
        {
            var execErrors = new ErrorResultTO();
            var compiler   = DataListFactory.CreateDataListCompiler();
            var oldID      = dataObject.DataListID;

            IList <KeyValuePair <enDev2ArgumentType, IList <IDev2Definition> > > remainingMappings = esbChannel.ShapeForSubRequest(dataObject, inputs, outputs, out errors);

            errors.MergeErrors(execErrors);

            var databaseServiceExecution = ServiceExecution as DatabaseServiceExecution;

            if (databaseServiceExecution != null)
            {
                databaseServiceExecution.InstanceOutputDefintions = outputs; // set the output mapping for the instance ;)
            }

            var result = ServiceExecution.Execute(out execErrors);

            errors.MergeErrors(execErrors);

            // Adjust the remaining output mappings ;)
            compiler.SetParentID(dataObject.DataListID, oldID);

            if (remainingMappings != null)
            {
                var outputMappings = remainingMappings.FirstOrDefault(c => c.Key == enDev2ArgumentType.Output);
                compiler.Shape(dataObject.DataListID, enDev2ArgumentType.Output, outputMappings.Value, out execErrors);
                errors.MergeErrors(execErrors);
            }
            else
            {
                compiler.Shape(dataObject.DataListID, enDev2ArgumentType.DB_ForEach, outputs, out execErrors);
                errors.MergeErrors(execErrors);
            }

            compiler.ConvertFrom(dataObject.DataListID, DataListFormat.CreateFormat(GlobalConstants._XML_Without_SystemTags), enTranslationDepth.Data, out execErrors);
            errors.MergeErrors(execErrors);
            compiler.ConvertFrom(oldID, DataListFormat.CreateFormat(GlobalConstants._XML_Without_SystemTags), enTranslationDepth.Data, out execErrors);
            errors.MergeErrors(execErrors);

            return(result);
        }