/// <summary> /// Clears the errors. /// </summary> /// <author>Jurie.smit</author> /// <date>2013/02/06</date> public void ClearErrors() { IBinaryDataListEntry entry; string error; TryGetEntry(DataListUtil.BuildSystemTagForDataList(enSystemTag.Dev2Error, false), out entry, out error); if (entry != null) { entry.TryPutScalar(new BinaryDataListItem(string.Empty, GlobalConstants.ErrorPayload), out error); } }
// 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); }