/// <summary>
        /// Fetches the intellisense parts.
        /// </summary>
        /// <returns></returns>
        public IList <IDev2DataLanguageIntellisensePart> FetchIntellisenseParts()
        {
            if (BinaryDataList == null)
            {
                return(null);
            }

            return(BinaryDataList.FetchIntellisenseParts());
        }
Exemplo n.º 2
0
        public virtual void CleanUp()
        {
            CleanUpCalled = true;
            IDataListCompiler compiler = DataListFactory.CreateDataListCompiler();

            if (BinaryDataList != null)
            {
                compiler.ForceDeleteDataListByID(BinaryDataList.UID);
                BinaryDataList.Dispose();
            }
        }
Exemplo n.º 3
0
        // internal to impl api methods
        private IBinaryDataList ConvertTo(byte[] input, StringBuilder targetShape, out ErrorResultTO errors, bool onlyMapInputs)
        {
            errors = new ErrorResultTO();
            string payload = Encoding.UTF8.GetString(input);

            IBinaryDataList result = new BinaryDataList();
            TranslatorUtils tu     = new TranslatorUtils();

            // build shape
            if (targetShape == null)
            {
                errors.AddError("Null payload or shape");
            }
            else
            {
                ErrorResultTO invokeErrors;
                result = tu.TranslateShapeToObject(targetShape, true, out invokeErrors);
                errors.MergeErrors(invokeErrors);

                // populate the shape
                if (payload != string.Empty)
                {
                    try
                    {
                        string      toLoad = DataListUtil.StripCrap(payload); // clean up the rubish ;)
                        XmlDocument xDoc   = new XmlDocument();

                        // BUG 9626 - 2013.06.11 - TWR: ensure our DocumentElement
                        toLoad = string.Format("<Tmp{0}>{1}</Tmp{0}>", Guid.NewGuid().ToString("N"), toLoad);
                        xDoc.LoadXml(toLoad);

                        if (xDoc.DocumentElement != null)
                        {
                            XmlNodeList children = xDoc.DocumentElement.ChildNodes;

                            IDictionary <string, int> indexCache = new Dictionary <string, int>();

                            // BUG 9626 - 2013.06.11 - TWR: refactored for recursion
                            TryConvert(children, result, indexCache, errors, onlyMapInputs);
                        }

                        // Transfer System Tags
                        for (int i = 0; i < TranslationConstants.systemTags.Length; i++)
                        {
                            string  key   = TranslationConstants.systemTags.GetValue(i).ToString();
                            string  query = String.Concat("//", key);
                            XmlNode n     = xDoc.SelectSingleNode(query);

                            // try system namespace tags ;)
                            if (n == null)
                            {
                                var values = "//" + DataListUtil.BuildSystemTagForDataList(key, false);
                                query = values;
                                n     = xDoc.SelectSingleNode(query);
                            }

                            if (n != null && !string.IsNullOrEmpty(n.InnerXml))
                            {
                                string bkey = DataListUtil.BuildSystemTagForDataList(key, false);
                                string error;
                                IBinaryDataListEntry sysEntry;
                                if (result.TryGetEntry(bkey, out sysEntry, out error))
                                {
                                    sysEntry.TryPutScalar(Dev2BinaryDataListFactory.CreateBinaryItem(n.InnerXml, bkey), out error);
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        // if use passed in empty input they only wanted the shape ;)
                        if (input.Length > 0)
                        {
                            errors.AddError(e.Message);
                        }
                    }
                }
            }
            return(result);
        }