public void DeSerializeToXMLFromBinary_InvertedIndexInsert_ValidXML_Expect_Sucess() { IBinaryDataList dl = Dev2BinaryDataListFactory.CreateDataList(); string error; List <Dev2Column> cols = new List <Dev2Column>(); ErrorResultTO errors; cols.Add(DataListFactory.CreateDev2Column("f1", "")); cols.Add(DataListFactory.CreateDev2Column("f2", "")); cols.Add(DataListFactory.CreateDev2Column("f3", "")); IDataListTranslator xmlConverter = Dls.GetTranslator(XmlFormat); dl.TryCreateRecordsetTemplate("rs1", "", cols, true, out error); dl.TryCreateScalarTemplate(string.Empty, "scalar1", "", true, out error); dl.TryCreateScalarValue("scalar1Value", "scalar1", out error); dl.TryCreateRecordsetValue("rec1.f2.vale", "f2", "rs1", 1, out error); dl.TryCreateRecordsetValue("rec1.f1.vale", "f1", "rs1", 1, out error); dl.TryCreateRecordsetValue("rec1.f3.vale", "f3", "rs1", 1, out error); dl.TryCreateRecordsetValue("rec2.f1.vale", "f1", "rs1", 2, out error); dl.TryCreateRecordsetValue("rec2.f2.vale", "f2", "rs1", 2, out error); dl.TryCreateRecordsetValue("rec2.f3.vale", "f3", "rs1", 2, out error); DataListTranslatedPayloadTO tmp = xmlConverter.ConvertFrom(dl, out errors); string result = tmp.FetchAsString().ToString(); Assert.AreEqual("<DataList><rs1><f1>rec1.f1.vale</f1><f2>rec1.f2.vale</f2><f3>rec1.f3.vale</f3></rs1><rs1><f1>rec2.f1.vale</f1><f2>rec2.f2.vale</f2><f3>rec2.f3.vale</f3></rs1><scalar1>scalar1Value</scalar1></DataList>", result); }
public void DeSerializeToXMLInputsOnlyFromBinary_ValidXML_Expect_Sucess() { IBinaryDataList dl = Dev2BinaryDataListFactory.CreateDataList(); List <Dev2Column> cols1 = new List <Dev2Column> { DataListFactory.CreateDev2Column("f1", ""), }; List <Dev2Column> cols2 = new List <Dev2Column> { DataListFactory.CreateDev2Column("f2", ""), }; string error; ErrorResultTO errors; IDataListTranslator xmlConverter = Dls.GetTranslator(XmlFormatInputsOnly); dl.TryCreateRecordsetTemplate("rs1", "", cols1, true, out error); dl.TryCreateRecordsetTemplate("rs2", "", cols2, true, true, enDev2ColumnArgumentDirection.Input, out error); dl.TryCreateScalarTemplate("", "scalar1", "", true, true, enDev2ColumnArgumentDirection.Input, out error); dl.TryCreateScalarTemplate("", "scalar2", "", true, true, enDev2ColumnArgumentDirection.Output, out error); dl.TryCreateScalarValue("scalar1Value", "scalar1", out error); dl.TryCreateScalarValue("scalar2Value", "scalar2", out error); dl.TryCreateRecordsetValue("rec1.f1.value", "f1", "rs1", 1, out error); dl.TryCreateRecordsetValue("rec1.f2.value", "f2", "rs2", 1, out error); dl.TryCreateRecordsetValue("rec2.f1.value", "f1", "rs1", 2, out error); dl.TryCreateRecordsetValue("rec2.f2.value", "f2", "rs2", 2, out error); DataListTranslatedPayloadTO tmp = xmlConverter.ConvertFrom(dl, out errors); string result = tmp.FetchAsString().ToString(); Assert.AreEqual("<DataList><scalar1>scalar1Value</scalar1></DataList>", result); }
/// <summary> /// Converts to selected Type from binary /// </summary> /// <param name="curDlid">The cur DLID.</param> /// <param name="typeOf">The type of.</param> /// <param name="depth">The depth.</param> /// <param name="errors">The errors.</param> /// <returns></returns> public StringBuilder ConvertFrom(Guid curDlid, DataListFormat typeOf, enTranslationDepth depth, out ErrorResultTO errors) { DataListTranslatedPayloadTO tmp = _svrCompiler.ConvertFrom(null, curDlid, depth, typeOf, out errors); if (tmp != null) { return(tmp.FetchAsString()); } return(new StringBuilder()); }
public DataListTranslatedPayloadTO ConvertFrom(IBinaryDataList payload, out ErrorResultTO errors) { if (payload == null) { throw new ArgumentNullException("payload"); } StringBuilder result = new StringBuilder("<" + RootTag + ">"); errors = new ErrorResultTO(); var entries = payload.FetchAllEntries(); foreach (var entry in entries) { if (entry.IsRecordset) { AddEntryToBuilder(result, entry); result.Append(">"); foreach (var col in entry.Columns) { result.Append("<"); result.Append(col.ColumnName); result.Append(" " + Description + "=\""); result.Append(col.ColumnDescription); result.Append("\" "); result.Append(IsEditable + "=\""); result.Append(col.IsEditable); result.Append("\" "); // Travis.Frisinger - Added Column direction result.Append(GlobalConstants.DataListIoColDirection + "=\""); result.Append(col.ColumnIODirection); result.Append("\" "); result.Append("/>"); } result.Append("</"); result.Append(entry.Namespace); result.Append(">"); } else { AddEntryToBuilder(result, entry); result.Append("/>"); } } result.Append("</" + RootTag + ">"); DataListTranslatedPayloadTO tmp = new DataListTranslatedPayloadTO(result.ToString()); return(tmp); }
/// <summary> /// Converts from a binary representation in the standard format to the specified <see cref="Format" />. /// </summary> /// <param name="input">The binary representation of the datalist.</param> /// <param name="errors">The errors.</param> /// <returns> /// An array of bytes that represent the datalist in the specified <see cref="Format" /> /// </returns> /// <exception cref="System.ArgumentNullException">input</exception> public DataListTranslatedPayloadTO ConvertFrom(IBinaryDataList input, out ErrorResultTO errors) { errors = new ErrorResultTO(); if (input == null) { throw new ArgumentNullException("input"); } IList <string> itemKeys = input.FetchAllUserKeys(); errors = new ErrorResultTO(); StringBuilder result = new StringBuilder("{"); int keyCnt = 0; foreach (string key in itemKeys) { IBinaryDataListEntry entry; // This check was never here - this means this method has no testing and was never sane ;) string error; if (input.TryGetEntry(key, out entry, out error)) { if (entry.IsRecordset) { result.Append(ProcessRecordSet(entry, out error)); errors.AddError(error); } else { result.Append(ProcessScalar(entry)); } } errors.AddError(error); // wack in , for field separator ;) keyCnt++; if (keyCnt < itemKeys.Count) { result.Append(","); } } result.Append("}"); DataListTranslatedPayloadTO tmp = new DataListTranslatedPayloadTO(result.ToString()); return(tmp); }
public override void Write(IByteWriterBase writer) { IDataListTranslator translator = new DataListTranslatorFactory().FetchTranslator(DataListFormat.CreateFormat(GlobalConstants._BINARY)); ErrorResultTO tmpErrors; byte[] datalistData = null; if (Datalist != null) { DataListTranslatedPayloadTO dataListTranslatedPayloadTO = translator.ConvertFrom(Datalist, out tmpErrors); datalistData = dataListTranslatedPayloadTO.FetchAsByteArray(); } __IByteWriterBaseExtensions.Write(writer, datalistData); __IByteWriterBaseExtensions.Write(writer, Errors.ToByteArray()); }
public DataListTranslatedPayloadTO ConvertFrom(IBinaryDataList payload, out ErrorResultTO errors) { if (payload == null) { throw new ArgumentNullException("payload"); } StringBuilder result = new StringBuilder("<" + RootTag + ">"); errors = new ErrorResultTO(); var itemKeys = payload.FetchAllKeys(); foreach (var key in itemKeys) { IBinaryDataListEntry entry; string error; if (payload.TryGetEntry(key, out entry, out error)) { if (entry.IsRecordset && (entry.ColumnIODirection == enDev2ColumnArgumentDirection.Input || entry.ColumnIODirection == enDev2ColumnArgumentDirection.Both)) { DoRecordSetAppending(errors, entry, result); } else { var fName = entry.Namespace; var val = entry.FetchScalar(); if (val != null && (entry.ColumnIODirection == enDev2ColumnArgumentDirection.Input || entry.ColumnIODirection == enDev2ColumnArgumentDirection.Both)) { DoScalarAppending(result, fName, val); } } } } result.Append("</" + RootTag + ">"); DataListTranslatedPayloadTO tmp = new DataListTranslatedPayloadTO(result.ToString()); return(tmp); }
/// <summary> /// Converts from a binary representation in the standard format to the specified <see cref="Format" />. /// </summary> /// <param name="input">The binary representation of the datalist.</param> /// <param name="errors">The errors.</param> /// <returns> /// An array of bytes that represent the datalist in the specified <see cref="Format" /> /// </returns> /// <exception cref="System.ArgumentNullException">input</exception> public DataListTranslatedPayloadTO ConvertFrom(IBinaryDataList input, out ErrorResultTO errors) { errors = new ErrorResultTO(); if (input == null) { errors.AddError("Null input argument"); throw new ArgumentNullException("input"); } DataListTranslatedPayloadTO resultTO; BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream()) { bf.Serialize(ms, input); resultTO = new DataListTranslatedPayloadTO(ms.ToArray()); } return(resultTO); }
public DataListTranslatedPayloadTO ConvertFrom(IBinaryDataList payload, out ErrorResultTO errors) { if (payload == null) { throw new ArgumentNullException("payload"); } TranslatorUtils tu = new TranslatorUtils(); StringBuilder result = new StringBuilder("<" + RootTag + ">"); errors = new ErrorResultTO(); var itemKeys = payload.FetchAllKeys(); foreach (string key in itemKeys) { IBinaryDataListEntry entry; string error; if (payload.TryGetEntry(key, out entry, out error)) { if (entry.IsRecordset) { var idxItr = entry.FetchRecordsetIndexes(); while (idxItr.HasMore() && !entry.IsEmpty()) { while (idxItr.HasMore()) { int i = idxItr.FetchNextIndex(); IList <IBinaryDataListItem> rowData = entry.FetchRecordAt(i, out error); errors.AddError(error); result.Append("<"); result.Append(entry.Namespace); result.Append(">"); foreach (IBinaryDataListItem col in rowData) { string fName = col.FieldName; result.Append("<"); result.Append(fName); result.Append(">"); // Travis.Frisinger 04.02.2013 if (!col.IsDeferredRead) { try { result.Append(tu.CleanForEmit(col.TheValue)); } catch (Exception e) { Dev2Logger.Log.Error(e); } } else { // deferred read, just print the location result.Append(!string.IsNullOrEmpty(col.TheValue) ? col.FetchDeferredLocation() : string.Empty); } result.Append("</"); result.Append(fName); result.Append(">"); } result.Append("</"); result.Append(entry.Namespace); result.Append(">"); } } } else { string fName = entry.Namespace; IBinaryDataListItem val = entry.FetchScalar(); if (val != null) { result.Append("<"); result.Append(fName); result.Append(">"); // Travis.Frisinger 04.02.2013 if (!val.IsDeferredRead) { // Dev2System.FormView is our html region, pass it by ;) try { result.Append(!entry.IsManagmentServicePayload ? tu.CleanForEmit(val.TheValue) : val.TheValue); } catch (Exception e) { Dev2Logger.Log.Error(e); } } else { // deferred read, just print the location result.Append(val.FetchDeferredLocation()); } result.Append("</"); result.Append(fName); result.Append(">"); } } } } result.Append("</" + RootTag + ">"); DataListTranslatedPayloadTO tmp = new DataListTranslatedPayloadTO(result.ToString()); return(tmp); }
public DataListTranslatedPayloadTO ConvertFrom(IBinaryDataList payload, out ErrorResultTO errors) { if(payload == null) { throw new ArgumentNullException("payload"); } TranslatorUtils tu = new TranslatorUtils(); StringBuilder result = new StringBuilder("<" + RootTag + ">"); errors = new ErrorResultTO(); IList<string> itemKeys = payload.FetchAllUserKeys(); foreach(string key in itemKeys) { IBinaryDataListEntry entry; string error; if(payload.TryGetEntry(key, out entry, out error)) { if(entry.IsRecordset && !entry.IsEmpty()) { var idxItr = entry.FetchRecordsetIndexes(); while(idxItr.HasMore()) { var i = idxItr.FetchNextIndex(); IList<IBinaryDataListItem> rowData = entry.FetchRecordAt(i, out error); errors.AddError(error); result.Append("<"); result.Append(entry.Namespace); result.Append(">"); foreach(IBinaryDataListItem col in rowData) { string fName = col.FieldName; result.Append("<"); result.Append(fName); result.Append(">"); try { result.Append(tu.FullCleanForEmit(col.TheValue)); } // ReSharper disable EmptyGeneralCatchClause catch(Exception) // ReSharper restore EmptyGeneralCatchClause { } result.Append("</"); result.Append(fName); result.Append(">"); } result.Append("</"); result.Append(entry.Namespace); result.Append(">"); } } else if(!entry.IsRecordset) { string fName = entry.Namespace; IBinaryDataListItem val = entry.FetchScalar(); if(val != null) { result.Append("<"); result.Append(fName); result.Append(">"); try { result.Append(tu.FullCleanForEmit(val.TheValue)); } // ReSharper disable EmptyGeneralCatchClause catch(Exception) // ReSharper restore EmptyGeneralCatchClause { } result.Append("</"); result.Append(fName); result.Append(">"); } } } } result.Append("</" + RootTag + ">"); DataListTranslatedPayloadTO tmp = new DataListTranslatedPayloadTO(result.ToString()); return tmp; }