/// <summary>
        /// Inits the entry point.
        /// </summary>
        /// <param name="workflowActivity">The workflow activity.</param>
        /// <param name="dataTransferObject">The data transfer object.</param>
        /// <param name="executionExtensions">The execution extensions.</param>
        /// <param name="instanceId">The instance id.</param>
        /// <param name="workspace">The workspace.</param>
        /// <param name="bookmarkName">Name of the bookmark.</param>
        /// <returns></returns>
        // ReSharper disable once UnusedParameter.Local // ignored as not sure how this method is invoked and what the knock on effect maybe
        private WorkflowApplication InitEntryPoint(Activity workflowActivity, IDSFDataObject dataTransferObject, IEnumerable <object> executionExtensions, Guid instanceId, IWorkspace workspace, string bookmarkName)
        {
            dataTransferObject.WorkspaceID = workspace.ID;

            Dictionary <string, object> inputarguments = new Dictionary <string, object>();

            WorkflowApplication wfApp = null;

            Guid parentInstanceID = FetchParentInstanceId(dataTransferObject);

            if (parentInstanceID != Guid.Empty)
            {
                inputarguments.Add("ParentWorkflowInstanceId", parentInstanceID);

                if (!string.IsNullOrEmpty(dataTransferObject.ParentServiceName))
                {
                    inputarguments.Add("ParentServiceName", dataTransferObject.ParentServiceName);
                }
            }

            // Set the old AmbientDatalist as the DataListID ;)
            inputarguments.Add("AmbientDataList", new List <string> {
                dataTransferObject.DataListID.ToString()
            });

            if ((parentInstanceID != Guid.Empty && instanceId == Guid.Empty) || string.IsNullOrEmpty(bookmarkName))
            {
                wfApp = new WorkflowApplication(workflowActivity, inputarguments);
            }
            else
            {
                if (!string.IsNullOrEmpty(bookmarkName))
                {
                    wfApp = new WorkflowApplication(workflowActivity);
                }
            }

            if (wfApp != null)
            {
                wfApp.InstanceStore = InstanceStore;

                if (executionExtensions != null)
                {
                    executionExtensions.ToList().ForEach(exec => wfApp.Extensions.Add(exec));
                }

                // Force a save to the server ;)
                IDataListCompiler       compiler = DataListFactory.CreateDataListCompiler();
                IDev2DataLanguageParser parser   = DataListFactory.CreateLanguageParser();


                wfApp.Extensions.Add(dataTransferObject);
                wfApp.Extensions.Add(compiler);
                wfApp.Extensions.Add(parser);
            }

            return(wfApp);
        }
Пример #2
0
        public void Extract_Recordset()
        {
            const string shape = @"<DL><recset><a/></recset></DL>";

            const string exp = "[[recset()]]";

            IDev2DataLanguageParser     parser  = DataListFactory.CreateLanguageParser();
            IList <IIntellisenseResult> results = parser.ParseDataLanguageForIntellisense(exp, shape, true);

            Assert.IsTrue(results.Count == 1 && results[0].Option.Recordset == "recset" && results[0].Option.RecordsetIndex == "");
        }
Пример #3
0
        /// <summary>
        ///     Gets the name of a recordset node from an output
        /// </summary>
        private string GetRecordsetNodeName(string outputDescription)
        {
            IDev2DataLanguageParser parser = DataListFactory.CreateLanguageParser();

            IList <IIntellisenseResult> parts = parser.ParseDataLanguageForIntellisense(outputDescription, "");

            if (parts.Count <= 0)
            {
                throw new Exception("Invalid output description '" + outputDescription + "'.");
            }

            return(parts[0].Option.Recordset);
        }
Пример #4
0
        /// <summary>
        ///     Gets the name of a node from an output description
        /// </summary>
        private string GetNodeName(string outputDescription)
        {
            IDev2DataLanguageParser parser = DataListFactory.CreateLanguageParser();

            IList <IIntellisenseResult> parts = parser.ParseDataLanguageForIntellisense(outputDescription, "");

            if (parts.Count <= 0)
            {
                throw new Exception(string.Format(ErrorResource.OutputDecriptionInvalid, outputDescription));
            }

            return(parts.Last().Option.Field);
        }
Пример #5
0
        private IList <IIntellisenseResult> GetIntellisenseResultsImpl(string input, enIntellisensePartType filterType)
        {
            IList <IIntellisenseResult> results = new List <IIntellisenseResult>();

            if (!CreateDataList(input, results))
            {
                return(results);
            }

            IntellisenseFilterOpsTO filterTO = new IntellisenseFilterOpsTO {
                FilterType = filterType, FilterCondition = FilterCondition
            };

            IDev2DataLanguageParser parser = DataListFactory.CreateLanguageParser();

            results = parser.ParseDataLanguageForIntellisense(input, CachedDataList, false, filterTO, true);

            return(results);
        }
Пример #6
0
        /// <summary>
        ///     Gets the value to use as a key for an ouotput description
        /// </summary>
        private string GetOutputDescriptionKey(string outputDescription)
        {
            IDev2DataLanguageParser parser = DataListFactory.CreateLanguageParser();

            IList <IIntellisenseResult> parts = parser.ParseDataLanguageForIntellisense(outputDescription, "");

            if (parts.Count <= 0)
            {
                throw new Exception("Invalid output description '" + outputDescription + "'.");
            }

            string key;

            if (parts[0].Option.IsScalar)
            {
                key = parts[0].Option.Field;
            }
            else
            {
                key = parts[0].Option.Recordset + "()";
            }

            return(key);
        }
 internal DataLanguageParserImplementation(IParserHelper parserHelper, IDev2DataLanguageParser dev2DataLanguageParser, IExtract extract)
 {
     _parserHelper           = parserHelper;
     _dev2DataLanguageParser = dev2DataLanguageParser;
     _extract = extract;
 }
 public DataLanguageParserImplementation(IParserHelper parserHelper, IDev2DataLanguageParser dev2DataLanguageParser)
     : this(parserHelper, dev2DataLanguageParser, new Extract(parserHelper, new Match(parserHelper)))
 {
 }