public OptomizedObservableCollection<IDataListItem> CreateListToBindTo(IBinaryDataList dataList)
        {
            var result = new OptomizedObservableCollection<IDataListItem>();

            if(dataList != null)
            {
                var listOfEntries = dataList.FetchScalarEntries();

                // process scalars ;)
                foreach(var entry in listOfEntries
                    .Where(e => ((e.ColumnIODirection == enDev2ColumnArgumentDirection.Input ||
                                 e.ColumnIODirection == enDev2ColumnArgumentDirection.Both))))
                {
                    result.AddRange(ConvertIBinaryDataListEntryToIDataListItem(entry));
                }

                // now process recordsets ;)
                listOfEntries = dataList.FetchRecordsetEntries();
                foreach(var entry in listOfEntries)
                {
                    result.AddRange(ConvertIBinaryDataListEntryToIDataListItem(entry));
                }
            }

            return result;
        }
 public WriteDataListMessage(long handle, Guid datalistID, IBinaryDataList datalist, ErrorResultTO errors)
 {
     Handle = handle;
     DatalistID = datalistID;
     Datalist = datalist;
     Errors = errors;
 }
 public DataTable ConvertToDataTable(IBinaryDataList input, string recsetName, out ErrorResultTO errors, PopulateOptions populateOptions)
 {
     if(String.IsNullOrEmpty(recsetName))
     {
         throw new ArgumentNullException("recsetName");
     }
     if(input == null)
     {
         throw new ArgumentNullException("input");
     }
     var dbData = new DataTable();
     IBinaryDataListEntry entry;
     errors = null;
     string error;
     if(input.TryGetEntry(recsetName, out entry, out error))
     {
         if(entry.IsRecordset)
         {
             var cols = entry.Columns;
             var dataColumns = cols.ToList().ConvertAll(column => new DataColumn(column.ColumnName));
             dbData.Columns.AddRange(dataColumns.ToArray());
             var fetchRecordsetIndexes = entry.FetchRecordsetIndexes();
             while(fetchRecordsetIndexes.HasMore())
             {
                 var binaryDataListItems = entry.FetchRowAt(fetchRecordsetIndexes.FetchNextIndex(), out error);
                 if(populateOptions == PopulateOptions.IgnoreBlankRows && binaryDataListItems.All(item =>
                 {
                     string theValue;
                     try
                     {
                         theValue = item.TheValue;
                     }
                     catch(Exception)
                     {
                         theValue = null;
                     }
                     return String.IsNullOrEmpty(theValue);
                 }))
                 {
                     continue;
                 }
                 dbData.LoadDataRow(binaryDataListItems.Select(item =>
                 {
                     string theValue;
                     try
                     {
                         theValue = item.TheValue;
                     }
                     catch(Exception)
                     {
                         theValue = null;
                     }
                     return theValue as object;
                 }).ToArray(), LoadOption.OverwriteChanges);
             }
         }
     }
     return dbData;
 }
        public void MyTestInitialize()
        {
            string error;

            var dataListCompiler = DataListFactory.CreateDataListCompiler();

            _dl1 = Dev2BinaryDataListFactory.CreateDataList();
            _dl1.TryCreateScalarTemplate(string.Empty, "myScalar", "A scalar", true, out error);
            _dl1.TryCreateScalarValue("[[otherScalar]]", "myScalar", out error);

            _dl1.TryCreateScalarTemplate(string.Empty, "otherScalar", "A scalar", true, out error);
            _dl1.TryCreateScalarValue("testRegion", "otherScalar", out error);

            _dl1.TryCreateScalarTemplate(string.Empty, "scalar1", "A scalar", true, out error);
            _dl1.TryCreateScalarValue("foobar", "scalar1", out error);

            IList<Dev2Column> cols = new List<Dev2Column>();
            cols.Add(Dev2BinaryDataListFactory.CreateColumn("f1"));
            cols.Add(Dev2BinaryDataListFactory.CreateColumn("f2"));
            cols.Add(Dev2BinaryDataListFactory.CreateColumn("f3"));

            _dl1.TryCreateRecordsetTemplate("recset", "a recordset", cols, true, out error);

            _dl1.TryCreateRecordsetValue("r1.f1.value", "f1", "recset", 1, out error);
            _dl1.TryCreateRecordsetValue("r1.f2.value", "f2", "recset", 1, out error);
            _dl1.TryCreateRecordsetValue("r1.f3.value", "f3", "recset", 1, out error);

            _dl1.TryCreateRecordsetValue("r2.f1.value", "f1", "recset", 2, out error);
            _dl1.TryCreateRecordsetValue("r2.f2.value", "f2", "recset", 2, out error);
            _dl1.TryCreateRecordsetValue("r2.f3.value", "f3", "recset", 2, out error);

            // skip 3 ;)

            _dl1.TryCreateRecordsetValue("r4.f1.value", "f1", "recset", 4, out error);
            _dl1.TryCreateRecordsetValue("r4.f2.value", "f2", "recset", 4, out error);
            _dl1.TryCreateRecordsetValue("r4.f3.value", "f3", "recset", 4, out error);

            dataListCompiler.PushBinaryDataList(_dl1.UID, _dl1, out _errors);
            //_compiler.UpsertSystemTag(dl1.UID, enSystemTag.EvaluateIteration, "true", out errors);

            /*  list 2 */
            _dl2 = Dev2BinaryDataListFactory.CreateDataList();
            _dl2.TryCreateScalarTemplate(string.Empty, "idx", "A scalar", true, out error);
            _dl2.TryCreateScalarValue("1", "idx", out error);

            _dl2.TryCreateRecordsetTemplate("recset", "a recordset", cols, true, out error);

            _dl2.TryCreateRecordsetValue("r1.f1.value", "f1", "recset", 1, out error);
            _dl2.TryCreateRecordsetValue("r1.f2.value", "f2", "recset", 1, out error);
            _dl2.TryCreateRecordsetValue("r1.f3.value", "f3", "recset", 1, out error);

            _dl2.TryCreateRecordsetValue("r2.f1.value", "f1", "recset", 2, out error);
            _dl2.TryCreateRecordsetValue("r2.f2.value", "f2", "recset", 2, out error);
            _dl2.TryCreateRecordsetValue("r2.f3.value", "f3", "recset", 2, out error);

            dataListCompiler.PushBinaryDataList(_dl2.UID, _dl2, out _errors);
            //_compiler.UpsertSystemTag(dl2.UID, enSystemTag.EvaluateIteration, "true", out errors);
        }
 protected SimulationResult(SerializationInfo info, StreamingContext context)
 {
     if (info == null)
     {
         throw new ArgumentNullException("info");
     }
     Key = (ISimulationKey) info.GetValue("Key", typeof (ISimulationKey));
     Value = (IBinaryDataList) info.GetValue("Value", typeof (IBinaryDataList));
 }
Exemplo n.º 6
0
        public void DeleteRecordActivity_GetInputs_Expected_One_Input()
        {
            DsfCountRecordsetActivity testAct = new DsfCountRecordsetActivity();

            IBinaryDataList inputs = testAct.GetInputs();

            // remove test datalist ;)
            DataListRemoval(inputs.UID);

            Assert.AreEqual(1, inputs.FetchAllEntries().Count);
        }
        public bool WriteDataList(Guid datalistID, IBinaryDataList datalist, ErrorResultTO errors) {
            bool result = false;

            if (datalistID != GlobalConstants.NullDataListID)
            {
                Repo[datalistID] = datalist;
                result = true;
            }

            return result;
        }
Exemplo n.º 8
0
// ReSharper disable InconsistentNaming
        public void FileWriteActivity_GetInputs_Expected_Seven_Input()
// ReSharper restore InconsistentNaming
        {
            DsfFileWrite testAct = new DsfFileWrite();

            IBinaryDataList inputs = testAct.GetInputs();

            // remove test datalist ;)

            Assert.AreEqual(9, inputs.FetchAllEntries().Count);
        }
Exemplo n.º 9
0
// ReSharper disable InconsistentNaming
        public void GetGeneralSettingsFromActivityAbstract_Expected_SettingsReturned()
// ReSharper restore InconsistentNaming
        {
            DsfCountRecordsetActivity testAct = new DsfCountRecordsetActivity {
                IsSimulationEnabled = false
            };

            IBinaryDataList testDl = testAct.GetGeneralSettingData();

            Assert.AreEqual(1, testDl.FetchAllEntries().Count);
        }
 /// <summary>
 /// Writes the given state to the <see cref="IBinaryDataList" /> registered for the given workspace.
 /// <remarks>
 /// This must implement the one-way (fire and forget) message exchange pattern.
 /// </remarks>
 /// </summary>
 /// <param name="binaryDataList">The state to be written.</param>
 /// <returns>The task that was created.</returns>
 public void Add(IBinaryDataList binaryDataList)
 {
     if(binaryDataList != null)
     {
         lock(_waitHandleGuard)
         {
             _binaryDataListQueue.Enqueue(binaryDataList);
             _writeWaithandle.Set();
         }
     }
 }
Exemplo n.º 11
0
        public void FileWriteActivity_GetOutputs_Expected_One_Output()
        {
            DsfFileWrite testAct = new DsfFileWrite();

            IBinaryDataList outputs = testAct.GetOutputs();

            // remove test datalist ;)
            DataListRemoval(outputs.UID);

            Assert.AreEqual(1, outputs.FetchAllEntries().Count);
        }
Exemplo n.º 12
0
        public override List <DebugItem> GetDebugOutputs(IBinaryDataList dataList)
        {
            List <DebugItem> result    = new List <DebugItem>();
            DebugItem        itemToAdd = new DebugItem();

            itemToAdd.Add(new DebugItemResult {
                Type = DebugItemResultType.Value, Value = Text
            });
            result.Add(itemToAdd);
            return(result);
        }
Exemplo n.º 13
0
 /// <summary>
 /// Writes the given state to the <see cref="IBinaryDataList" /> registered for the given workspace.
 /// <remarks>
 /// This must implement the one-way (fire and forget) message exchange pattern.
 /// </remarks>
 /// </summary>
 /// <param name="binaryDataList">The state to be written.</param>
 /// <returns>The task that was created.</returns>
 public void Add(IBinaryDataList binaryDataList)
 {
     if (binaryDataList != null)
     {
         lock (_waitHandleGuard)
         {
             _binaryDataListQueue.Enqueue(binaryDataList);
             _writeWaithandle.Set();
         }
     }
 }
Exemplo n.º 14
0
        /// <summary>
        /// Creates the XML data from binary data list.
        /// </summary>
        /// <param name="binaryDataList">The binary data list.</param>
        /// <param name="errors">The errors.</param>
        /// <returns></returns>
        private string CreateXmlDataFromBinaryDataList(IBinaryDataList binaryDataList, out ErrorResultTO errors)
        {
            string        result    = string.Empty;
            ErrorResultTO allErrors = new ErrorResultTO();

            errors = new ErrorResultTO();
            Guid dlGuid = _compiler.PushBinaryDataList(binaryDataList.UID, binaryDataList, out errors);

            result = _compiler.ConvertFrom(dlGuid, DataListFormat.CreateFormat(GlobalConstants._Studio_XML), enTranslationDepth.Shape, out errors);
            return(result);
        }
Exemplo n.º 15
0
        public void PathCreateActivity_GetInputs_Expected_Five_Input()
        {
            DsfPathCreate testAct = new DsfPathCreate();

            IBinaryDataList inputs = testAct.GetInputs();

            // remove test datalist ;)
            DataListRemoval(inputs.UID);

            Assert.AreEqual(5, inputs.FetchAllEntries().Count);
        }
Exemplo n.º 16
0
        public void RecordsetLengthRecordsetActivity_GetInputs_Expected_One_Input()
        {
            DsfRecordsetLengthActivity testAct = new DsfRecordsetLengthActivity();

            IBinaryDataList inputs = testAct.GetInputs();

            var result = inputs.FetchAllEntries().Count;

            // remove test datalist ;)

            Assert.AreEqual(1, result);
        }
Exemplo n.º 17
0
        public void PathMoveActivity_GetInputs_Expected_Six_Input()
        {
            DsfPathMove testAct = new DsfPathMove();

            IBinaryDataList inputs = testAct.GetInputs();

            var res = inputs.FetchAllEntries().Count;

            // remove test datalist ;)

            Assert.AreEqual(8, res);
        }
Exemplo n.º 18
0
        public void CountRecordsetActivity_GetInputs_Expected_Four_Input()
        {
            DsfReplaceActivity testAct = new DsfReplaceActivity();

            IBinaryDataList inputs = testAct.GetInputs();

            var res = inputs.FetchAllEntries().Count;

            // remove test datalist ;)

            Assert.AreEqual(4, res);
        }
Exemplo n.º 19
0
        public void UnZipActivity_GetInputs_Expected_Seven_Input()
        {
            DsfUnZip testAct = new DsfUnZip();

            IBinaryDataList inputs = testAct.GetInputs();

            var res = inputs.FetchAllEntries().Count;

            // remove test datalist ;)

            Assert.AreEqual(9, res);
        }
        public bool WriteDataList(Guid datalistID, IBinaryDataList datalist, ErrorResultTO errors)
        {
            bool result = false;

            if (datalistID != GlobalConstants.NullDataListID)
            {
                Repo[datalistID] = datalist;
                result           = true;
            }

            return(result);
        }
Exemplo n.º 21
0
        public void DateTimeDifference_GetOutputs_Expected_One_Output()
        {
            DsfDateTimeDifferenceActivity testAct = new DsfDateTimeDifferenceActivity {
                Input1 = "27-10-2012", Input2 = "28-10-2012", InputFormat = "dd-mm-yyyy", OutputType = "Years", Result = "[[result]]"
            };

            IBinaryDataList outputs = testAct.GetOutputs();

            // remove test datalist ;)

            Assert.AreEqual(1, outputs.FetchAllEntries().Count);
        }
        public void DateTimeActivity_GetOutputs_Expected_One_Output()
        {
            DsfDateTimeActivity testAct = new DsfDateTimeActivity {
                DateTime = "27-10-2012", InputFormat = "DD-mm-yyyy", TimeModifierType = "Days", TimeModifierAmount = 5, TimeModifierAmountDisplay = "5", OutputFormat = "DD-mm-yyyy", Result = "[[result]]"
            };

            IBinaryDataList outputs = testAct.GetOutputs();

            // remove test datalist ;)

            Assert.AreEqual(1, outputs.FetchAllEntries().Count);
        }
Exemplo n.º 23
0
        public void CountRecordsetActivity_GetOutputs_Expected_One_Output()
        {
            DsfCountRecordsetActivity testAct = new DsfCountRecordsetActivity();

            IBinaryDataList outputs = testAct.GetOutputs();

            var result = outputs.FetchAllEntries().Count;

            // remove test datalist ;)

            Assert.AreEqual(1, result);
        }
Exemplo n.º 24
0
        public void SortRecords_GetOutputs_Expected_Zero_Output()
        {
            DsfSortRecordsActivity testAct = new DsfSortRecordsActivity();

            IBinaryDataList outputs = testAct.GetOutputs();

            var res = outputs.FetchAllEntries().Count;

            // remove test datalist ;)

            Assert.AreEqual(0, res);
        }
Exemplo n.º 25
0
        public void PathRenameActivity_GetOutputs_Expected_One_Output()
        {
            DsfPathRename testAct = new DsfPathRename();

            IBinaryDataList outputs = testAct.GetOutputs();

            var res = outputs.FetchAllEntries().Count;

            // remove test datalist ;)

            Assert.AreEqual(1, res);
        }
Exemplo n.º 26
0
        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);
        }
Exemplo n.º 27
0
// ReSharper disable InconsistentNaming
        public void FileReadActivity_GetInputs_Expected_Four_Input()
// ReSharper restore InconsistentNaming
        {
            DsfFileRead testAct = new DsfFileRead();

            IBinaryDataList inputs = testAct.GetInputs();

            // remove test datalist ;)
            DataListRemoval(inputs.UID);

            Assert.AreEqual(4, inputs.FetchAllEntries().Count);
        }
Exemplo n.º 28
0
        /// <summary>
        /// Converts the and filter.
        /// </summary>
        /// <param name="payload">The payload.</param>
        /// <param name="filterShape">The filter shape.</param>
        /// <param name="errors">The errors.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentNullException">payload</exception>
        public StringBuilder ConvertAndFilter(IBinaryDataList payload, StringBuilder filterShape, out ErrorResultTO errors)
        {
            if (payload == null)
            {
                throw new ArgumentNullException("payload");
            }

            int keyCnt = 0;

            errors = new ErrorResultTO();

            TranslatorUtils tu = new TranslatorUtils();
            ErrorResultTO   invokeErrors;

            IBinaryDataList targetDl = tu.TranslateShapeToObject(filterShape, false, out invokeErrors);

            errors.MergeErrors(invokeErrors);

            IList <string> itemKeys = targetDl.FetchAllUserKeys();
            StringBuilder  result   = new StringBuilder("{");

            foreach (string key in itemKeys)
            {
                IBinaryDataListEntry entry;
                IBinaryDataListEntry tmpEntry;
                string error;
                if (payload.TryGetEntry(key, out entry, out error) && targetDl.TryGetEntry(key, out tmpEntry, out error))
                {
                    if (entry.IsRecordset)
                    {
                        result.Append(ProcessRecordSet(entry, out error));
                        errors.AddError(error);
                    }
                    else
                    {
                        result.Append(ProcessScalar(entry));
                    }

                    // wack in , for field separator ;)
                    keyCnt++;
                    if (keyCnt < itemKeys.Count)
                    {
                        result.Append(",");
                    }
                }

                errors.AddError(error);
            }

            result.Append("}");

            return(result);
        }
        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;
        }
Exemplo n.º 30
0
        public void Clone_50EntryRS_1kTimes_AtDepth()
        {
            string error;

            IBinaryDataList dl1 = Dev2BinaryDataListFactory.CreateDataList(GlobalConstants.NullDataListID);

            IList <Dev2Column> cols = new List <Dev2Column>();

            cols.Add(Dev2BinaryDataListFactory.CreateColumn("f1"));
            cols.Add(Dev2BinaryDataListFactory.CreateColumn("f2"));
            cols.Add(Dev2BinaryDataListFactory.CreateColumn("f3"));
            cols.Add(Dev2BinaryDataListFactory.CreateColumn("f4"));
            cols.Add(Dev2BinaryDataListFactory.CreateColumn("f5"));

            const int r    = 50;
            const int runs = 1000;

            dl1.TryCreateRecordsetTemplate("recset", string.Empty, cols, true, out error);


            for (int i = 0; i < r; i++)
            {
                dl1.TryCreateRecordsetValue("r1.f1.value r1.f1.value r1.f1.valuer1.f1.valuer1.f1.value", "f1", "recset", (i + 1), out error);
                dl1.TryCreateRecordsetValue("r1.f2.value", "f2", "recset", (i + 1), out error);
                dl1.TryCreateRecordsetValue("r1.f3.valuer1.f3.valuer1.f3.valuer1.f3.valuer1.f3.valuer1.f3.valuer1.f3.value", "f3", "recset", (i + 1), out error);
                dl1.TryCreateRecordsetValue("r1.f3.value", "f4", "recset", (i + 1), out error);
                dl1.TryCreateRecordsetValue("r1.f3.value r1.f3.value v r1.f3.value r1.f3.value", "f5", "recset", (i + 1), out error);
            }

            DateTime             start1 = DateTime.Now;
            string               er;
            IBinaryDataListEntry val;
            bool tryGetEntry = dl1.TryGetEntry("recset", out val, out er);

            for (int q = 0; q < runs; q++)
            {
                if (tryGetEntry)
                {
                    val.Clone(enTranslationDepth.Data, dl1.UID, out er);
                }
            }


            DateTime end1 = DateTime.Now;

            long   ticks   = (end1.Ticks - start1.Ticks);
            double result1 = (ticks / _ticksPerSec);

            Console.WriteLine(result1 + @" seconds for " + runs + @" to clone ");

            Assert.IsTrue(result1 <= 10.5); // Given .01 buffer ;) WAS : 0.065
        }
Exemplo n.º 31
0
        public void PathDeleteActivity_GetInputs_Expected_Four_Input()
        {
            DsfPathDelete testAct = new DsfPathDelete();

            IBinaryDataList inputs = testAct.GetInputs();

            var res = inputs.FetchAllEntries().Count;

            // remove test datalist ;)
            DataListRemoval(inputs.UID);

            Assert.AreEqual(4, res);
        }
Exemplo n.º 32
0
        public void SortRecords_GetInputs_Expected_Two_Input()
        {
            DsfSortRecordsActivity testAct = new DsfSortRecordsActivity();

            IBinaryDataList inputs = testAct.GetInputs();

            var res = inputs.FetchAllEntries().Count;

            // remove test datalist ;)
            DataListRemoval(inputs.UID);

            Assert.AreEqual(2, res);
        }
Exemplo n.º 33
0
        public LiveFlushIterator(Guid loc)
        {
            ErrorResultTO errors;

            _liveFlushingLocation = loc;

            _bdl = _c.FetchBinaryDataList(loc, out errors);

            if (errors.HasErrors())
            {
                throw new Exception(errors.MakeDataListReady());
            }
        }
Exemplo n.º 34
0
// ReSharper disable InconsistentNaming
        public void FolderReadActivity_GetInputs_Expected_Four_Input()
// ReSharper restore InconsistentNaming
        {
            DsfFolderRead testAct = new DsfFolderRead();

            IBinaryDataList inputs = testAct.GetInputs();

            var res = inputs.FetchAllEntries().Count;

            // remove test datalist ;)

            Assert.AreEqual(7, res);
        }
        public LiveFlushIterator(Guid loc)
        {
            ErrorResultTO errors;
            _liveFlushingLocation = loc;

            _bdl = _c.FetchBinaryDataList(loc, out errors);

            if(errors.HasErrors())
            {
                throw new Exception(errors.MakeDataListReady());
            }

        }
Exemplo n.º 36
0
        public void UnZipActivity_GetOutputs_Expected_One_Output()
        {
            DsfUnZip testAct = new DsfUnZip();

            IBinaryDataList outputs = testAct.GetOutputs();

            var res = outputs.FetchAllEntries().Count;

            // remove test datalist ;)
            DataListRemoval(outputs.UID);

            Assert.AreEqual(1, res);
        }
Exemplo n.º 37
0
        /// <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);
        }
Exemplo n.º 38
0
        public override void Read(IByteReaderBase reader)
        {
            IDataListTranslator translator = new DataListTranslatorFactory().FetchTranslator(DataListFormat.CreateFormat(GlobalConstants._BINARY));
            ErrorResultTO       tmpErrors;

            byte[] datalistData = reader.ReadByteArray();
            Datalist = null;
            if (datalistData != null)
            {
                Datalist = translator.ConvertTo(datalistData, new StringBuilder(), out tmpErrors);
            }

            Errors = ErrorResultTOExtensionMethods.FromByteArray(reader.ReadByteArray());
        }
Exemplo n.º 39
0
        public override Func <IList <string> > BuildSearchExpression(IBinaryDataList scopingObj, IRecsetSearch to)
        {
            Func <IList <string> > result = () =>
            {
                ErrorResultTO err;
                IList <RecordSetSearchPayload> operationRange = GenerateInputRange(to, scopingObj, out err).Invoke();
                IList <string> fnResult = new List <string>();

                string toFind      = to.SearchCriteria.Trim();
                string toFindLower = toFind.ToLower();

                foreach (RecordSetSearchPayload p in operationRange)
                {
                    string toMatch = p.Payload.Trim();

                    if (to.MatchCase)
                    {
                        if (toMatch.Equals(toFind, StringComparison.CurrentCulture))
                        {
                            fnResult.Add(p.Index.ToString(CultureInfo.InvariantCulture));
                        }
                        else
                        {
                            if (to.RequireAllFieldsToMatch)
                            {
                                return(new List <string>());
                            }
                        }
                    }
                    else
                    {
                        if (toMatch.ToLower().Equals(toFindLower, StringComparison.CurrentCulture))
                        {
                            fnResult.Add(p.Index.ToString(CultureInfo.InvariantCulture));
                        }
                        else
                        {
                            if (to.RequireAllFieldsToMatch)
                            {
                                return(new List <string>());
                            }
                        }
                    }
                }

                return(fnResult.Distinct().ToList());
            };

            return(result);
        }
        public override void Read(IByteReaderBase reader)
        {
            IDataListTranslator translator = new DataListTranslatorFactory().FetchTranslator(DataListFormat.CreateFormat(GlobalConstants._BINARY));
            ErrorResultTO tmpErrors;

            byte[] datalistData = reader.ReadByteArray();
            Datalist = null;
            if(datalistData != null)
            {
                Datalist = translator.ConvertTo(datalistData, new StringBuilder(), out tmpErrors);
            }

            Errors = ErrorResultTOExtensionMethods.FromByteArray(reader.ReadByteArray());
        }
        /// <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 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;
        }
Exemplo n.º 43
0
        public static Mock<IDataListServer> SetupDataListServer(bool writeResult = true, bool persistChildChainResult = true, IBinaryDataList readResult = null, bool readCausesException = false, bool writeCausesException = false, bool persistChildChainCausesException = false, bool deleteCausesException = false)
        {
            Mock<IDataListServer> mockDataListServer = new Mock<IDataListServer>();
            ErrorResultTO errors;

            if(readCausesException)
            {
                mockDataListServer.Setup(e => e.ReadDatalist(It.IsAny<Guid>(), out errors)).Throws(new Exception());
            }
            else
            {
                mockDataListServer.Setup(e => e.ReadDatalist(It.IsAny<Guid>(), out errors)).Verifiable();
                mockDataListServer.Setup(e => e.ReadDatalist(It.IsAny<Guid>(), out errors)).Returns(readResult);
            }

            if(writeCausesException)
            {
                mockDataListServer.Setup(e => e.WriteDataList(It.IsAny<Guid>(), It.IsAny<IBinaryDataList>(), out errors)).Throws(new Exception());
            }
            else
            {
                mockDataListServer.Setup(e => e.WriteDataList(It.IsAny<Guid>(), It.IsAny<IBinaryDataList>(), out errors)).Verifiable();
                mockDataListServer.Setup(e => e.WriteDataList(It.IsAny<Guid>(), It.IsAny<IBinaryDataList>(), out errors)).Returns(writeResult);
            }


            if(deleteCausesException)
            {
                mockDataListServer.Setup(e => e.DeleteDataList(It.IsAny<Guid>(), It.IsAny<bool>())).Throws(new Exception());
            }
            else
            {
                mockDataListServer.Setup(e => e.DeleteDataList(It.IsAny<Guid>(), It.IsAny<bool>())).Verifiable();
            }

            return mockDataListServer;
        }
        [TestMethod] // - ok
        public void IntersectVarList_Expected_Merged_Data_Missing_recset2()
        {
            ErrorResultTO errors;

            _dl1 = _dl1.Merge(_dl4, enDataListMergeTypes.Intersection, enTranslationDepth.Data, false, out errors);

            IBinaryDataListEntry scalar;
            IBinaryDataListEntry rs;
            IBinaryDataListEntry rs2;
            string error;
            _dl1.TryGetEntry("myScalar", out scalar, out error);
            _dl1.TryGetEntry("recset", out rs, out error);
            _dl1.TryGetEntry("recset2", out rs2, out error);

            Assert.AreEqual("myValue4", scalar.FetchScalar().TheValue);
            Assert.AreEqual("r1.f1.value", (rs.FetchRecordAt(1, out error)[0]).TheValue);
            Assert.IsTrue(rs2 == null);
            Assert.IsTrue(errors.HasErrors());
            Assert.AreEqual("Missing DataList item [ recset ] ", errors.FetchErrors()[0]);

        }
        [TestMethod] // - ok
        public void IntersectList_DifferentShape_Expected_Errors()
        {

            ErrorResultTO errors;
            _dl1 = _dl1.Merge(_dl3, enDataListMergeTypes.Intersection, enTranslationDepth.Shape, false, out errors);

            IBinaryDataListEntry scalar;
            IBinaryDataListEntry scalar2;
            IBinaryDataListEntry rs;
            IBinaryDataListEntry rs2;
            string error;
            _dl1.TryGetEntry("myScalar", out scalar, out error);
            _dl1.TryGetEntry("theScalar", out scalar2, out error);
            _dl1.TryGetEntry("recset", out rs, out error);
            _dl1.TryGetEntry("recset2", out rs2, out error);

            Assert.IsTrue(errors.HasErrors());
            Assert.AreEqual("Missing DataList item [ myScalar ] ", errors.FetchErrors()[0]);
            Assert.AreEqual("Missing DataList item [ recset ] ", errors.FetchErrors()[1]);

        }
        [TestMethod]  // - ok
        public void UnionCloneList_VarList_Expected_Merged_Data_In_New_Object()
        {
            ErrorResultTO errors;

            Guid mergeID = _dl1.UID;
            _dl1 = _dl1.Merge(_dl4, enDataListMergeTypes.Union, enTranslationDepth.Data, true, out errors);


            IBinaryDataListEntry scalar;
            IBinaryDataListEntry rs;
            IBinaryDataListEntry rs2;
            string error;
            _dl1.TryGetEntry("myScalar", out scalar, out error);
            _dl1.TryGetEntry("recset", out rs, out error);
            _dl1.TryGetEntry("recset2", out rs2, out error);

            Assert.AreEqual("myValue4", scalar.FetchScalar().TheValue);
            Assert.AreNotEqual(mergeID, _dl1.UID);
            Assert.AreEqual(4, rs.FetchLastRecordsetIndex());
            Assert.AreEqual(3, rs2.FetchLastRecordsetIndex());
            Assert.IsFalse(errors.HasErrors());

        }
        public void IntersectList_Expected_Merged_Shape()
        {
            ErrorResultTO errors;

            _dl1 = _dl1.Merge(_dl2, enDataListMergeTypes.Intersection, enTranslationDepth.Shape, false, out errors);
            Guid mergeID = _dl1.UID;

            IBinaryDataListEntry scalar;
            IBinaryDataListEntry rs;
            string error;
            _dl1.TryGetEntry("myScalar", out scalar, out error);
            _dl1.TryGetEntry("recset", out rs, out error);

            Assert.AreEqual("myValue", scalar.FetchScalar().TheValue);
            Assert.AreEqual("r1.f1.value", (rs.FetchRecordAt(1, out error)[0]).TheValue);
            Assert.AreEqual(mergeID, _dl1.UID);
            Assert.IsFalse(errors.HasErrors());

        }
        [TestMethod] // - ok
        public void UnionCloneList_Expected_Merged_Data()
        {
            ErrorResultTO errors;

            Guid mergeID = _dl1.UID;
            _dl1 = _dl1.Merge(_dl2, enDataListMergeTypes.Union, enTranslationDepth.Data, false, out errors);


            IBinaryDataListEntry scalar;
            IBinaryDataListEntry rs;
            string error;
            _dl1.TryGetEntry("myScalar", out scalar, out error);
            _dl1.TryGetEntry("recset", out rs, out error);

            Assert.AreEqual("myValue2", scalar.FetchScalar().TheValue);
            Assert.AreEqual("r3a.f1.value2", (rs.FetchRecordAt(3, out error)[0]).TheValue);
            Assert.AreEqual(mergeID, _dl1.UID);
            Assert.AreEqual(4, rs.FetchLastRecordsetIndex());
            Assert.IsFalse(errors.HasErrors());

        }
        [TestMethod] // - ok
        public void UnionCloneList_Expected_NonExistRow_CausesAdd()
        {
            ErrorResultTO errors;

            _dl1 = _dl1.Merge(_dl2, enDataListMergeTypes.Union, enTranslationDepth.Data, false, out errors);


            IBinaryDataListEntry scalar;
            IBinaryDataListEntry rs;
            string error;
            _dl1.TryGetEntry("myScalar", out scalar, out error);
            _dl1.TryGetEntry("recset", out rs, out error);

            Assert.AreEqual("myValue2", scalar.FetchScalar().TheValue);
            Assert.AreEqual("r2a.f1.value2", (rs.FetchRecordAt(2, out error)[0]).TheValue);
            Assert.AreEqual(4, rs.FetchLastRecordsetIndex());
            Assert.AreEqual(4, rs.ItemCollectionSize());
            Assert.IsFalse(errors.HasErrors());

        }
        public void MyTestInitialize()
        {
            string error;

            _dl1 = Dev2BinaryDataListFactory.CreateDataList();
            _dl1.TryCreateScalarTemplate(string.Empty, "myScalar", "A scalar", true, out error);
            _dl1.TryCreateScalarValue("myValue", "myScalar", out error);

            IList<Dev2Column> cols = new List<Dev2Column>();
            cols.Add(Dev2BinaryDataListFactory.CreateColumn("f1"));
            cols.Add(Dev2BinaryDataListFactory.CreateColumn("f2"));
            cols.Add(Dev2BinaryDataListFactory.CreateColumn("f3"));

            _dl1.TryCreateRecordsetTemplate("recset", "a recordset", cols, true, out error);

            _dl1.TryCreateRecordsetValue("r1.f1.value", "f1", "recset", 1, out error);
            _dl1.TryCreateRecordsetValue("r1.f2.value", "f2", "recset", 1, out error);
            _dl1.TryCreateRecordsetValue("r1.f3.value", "f3", "recset", 1, out error);

            _dl1.TryCreateRecordsetValue("r2.f1.value", "f1", "recset", 2, out error);
            _dl1.TryCreateRecordsetValue("r2.f2.value", "f2", "recset", 2, out error);
            _dl1.TryCreateRecordsetValue("r2.f3.value", "f3", "recset", 2, out error);

            // skip 3 ;)

            _dl1.TryCreateRecordsetValue("r4.f1.value", "f1", "recset", 4, out error);
            _dl1.TryCreateRecordsetValue("r4.f2.value", "f2", "recset", 4, out error);
            _dl1.TryCreateRecordsetValue("r4.f3.value", "f3", "recset", 4, out error);

            // create 2nd obj
            _dl2 = Dev2BinaryDataListFactory.CreateDataList();
            _dl2.TryCreateScalarTemplate(string.Empty, "myScalar", "A scalar", true, out error);
            _dl2.TryCreateScalarValue("myValue2", "myScalar", out error);

            cols = new List<Dev2Column> { Dev2BinaryDataListFactory.CreateColumn("f1"), Dev2BinaryDataListFactory.CreateColumn("f2"), Dev2BinaryDataListFactory.CreateColumn("f3") };

            _dl2.TryCreateRecordsetTemplate("recset", "a recordset", cols, true, out error);

            _dl2.TryCreateRecordsetValue("r1a.f1.value2", "f1", "recset", 1, out error);
            _dl2.TryCreateRecordsetValue("r1a.f2.value2", "f2", "recset", 1, out error);
            _dl2.TryCreateRecordsetValue("r1a.f3.value2", "f3", "recset", 1, out error);

            _dl2.TryCreateRecordsetValue("r2a.f1.value2", "f1", "recset", 2, out error);
            _dl2.TryCreateRecordsetValue("r2a.f2.value2", "f2", "recset", 2, out error);
            _dl2.TryCreateRecordsetValue("r2a.f3.value2", "f3", "recset", 2, out error);

            _dl2.TryCreateRecordsetValue("r3a.f1.value2", "f1", "recset", 3, out error);
            _dl2.TryCreateRecordsetValue("r3a.f2.value2", "f2", "recset", 3, out error);
            _dl2.TryCreateRecordsetValue("r3a.f3.value2", "f3", "recset", 3, out error);

            // create 3rd obj
            _dl3 = Dev2BinaryDataListFactory.CreateDataList();
            _dl3.TryCreateScalarTemplate(string.Empty, "theScalar", "A scalar", true, out error);
            _dl3.TryCreateScalarValue("theValue", "theScalar", out error);

            cols = new List<Dev2Column> { Dev2BinaryDataListFactory.CreateColumn("f1"), Dev2BinaryDataListFactory.CreateColumn("f2"), Dev2BinaryDataListFactory.CreateColumn("f3") };

            _dl3.TryCreateRecordsetTemplate("recset2", "a recordset", cols, true, out error);

            _dl3.TryCreateRecordsetValue("r1a.f1.value2", "f1", "recset2", 1, out error);
            _dl3.TryCreateRecordsetValue("r1a.f2.value2", "f2", "recset2", 1, out error);
            _dl3.TryCreateRecordsetValue("r1a.f3.value2", "f3", "recset2", 1, out error);

            _dl3.TryCreateRecordsetValue("r2a.f1.value2", "f1", "recset2", 2, out error);
            _dl3.TryCreateRecordsetValue("r2a.f2.value2", "f2", "recset2", 2, out error);
            _dl3.TryCreateRecordsetValue("r2a.f3.value2", "f3", "recset2", 2, out error);

            _dl3.TryCreateRecordsetValue("r3a.f1.value2", "f1", "recset2", 3, out error);
            _dl3.TryCreateRecordsetValue("r3a.f2.value2", "f2", "recset2", 3, out error);
            _dl3.TryCreateRecordsetValue("r3a.f3.value2", "f3", "recset2", 3, out error);

            // create 4th obj
            _dl4 = Dev2BinaryDataListFactory.CreateDataList();
            _dl4.TryCreateScalarTemplate(string.Empty, "theScalar", "A scalar", true, out error);
            _dl4.TryCreateScalarValue("theValue4", "theScalar", out error);
            _dl4.TryCreateScalarTemplate(string.Empty, "myScalar", "A scalar", true, out error);
            _dl4.TryCreateScalarValue("myValue4", "myScalar", out error);

            cols = new List<Dev2Column> { Dev2BinaryDataListFactory.CreateColumn("f1"), Dev2BinaryDataListFactory.CreateColumn("f2"), Dev2BinaryDataListFactory.CreateColumn("f3") };

            _dl4.TryCreateRecordsetTemplate("recset2", "a recordset", cols, true, out error);

            _dl4.TryCreateRecordsetValue("r1a.f1.value2", "f1", "recset2", 1, out error);
            _dl4.TryCreateRecordsetValue("r1a.f2.value2", "f2", "recset2", 1, out error);
            _dl4.TryCreateRecordsetValue("r1a.f3.value2", "f3", "recset2", 1, out error);

            _dl4.TryCreateRecordsetValue("r2a.f1.value2", "f1", "recset2", 2, out error);
            _dl4.TryCreateRecordsetValue("r2a.f2.value2", "f2", "recset2", 2, out error);
            _dl4.TryCreateRecordsetValue("r2a.f3.value2", "f3", "recset2", 2, out error);

            _dl4.TryCreateRecordsetValue("r3a.f1.value2", "f1", "recset2", 3, out error);
            _dl4.TryCreateRecordsetValue("r3a.f2.value2", "f2", "recset2", 3, out error);
            _dl4.TryCreateRecordsetValue("r3a.f3.value2", "f3", "recset2", 3, out error);



            // create 5th obj
            _dlWithBankScalar = Dev2BinaryDataListFactory.CreateDataList();
            _dlWithBankScalar.TryCreateScalarTemplate(string.Empty, "myScalar", "A scalar", true, out error);
            _dlWithBankScalar.TryCreateScalarValue("", "myScalar", out error);

            _dlWithPopulatedScalar = Dev2BinaryDataListFactory.CreateDataList();
            _dlWithPopulatedScalar.TryCreateScalarTemplate(string.Empty, "myScalar", "A scalar", true, out error);
            _dlWithPopulatedScalar.TryCreateScalarValue("CAKE!", "myScalar", out error);
        }
        [TestMethod] // - ok
        public void UnionDataWithBlankOverwrite_Expect_BlankScalar()
        {

            ErrorResultTO errors;
            Guid mergeID = _dlWithPopulatedScalar.UID;
            _dlWithPopulatedScalar = _dlWithPopulatedScalar.Merge(_dlWithBankScalar, enDataListMergeTypes.Union, enTranslationDepth.Data_With_Blank_OverWrite, false, out errors);


            IBinaryDataListEntry scalar;
            string error;
            _dlWithPopulatedScalar.TryGetEntry("myScalar", out scalar, out error);

            Assert.AreEqual(string.Empty, scalar.FetchScalar().TheValue);
            Assert.AreEqual(mergeID, _dlWithPopulatedScalar.UID);
            Assert.IsFalse(errors.HasErrors());

        }
Exemplo n.º 52
0
        /// <summary>
        /// Merges the into instance.
        /// </summary>
        /// <param name="obj">The obj.</param>
        /// <param name="typeOf">The type of.</param>
        /// <param name="depth">The depth.</param>
        /// <param name="errorResult">The error result.</param>
        private void MergeIntoInstance(IBinaryDataList obj, enDataListMergeTypes typeOf, enTranslationDepth depth, out ErrorResultTO errorResult)
        {

            errorResult = new ErrorResultTO();
            BinaryDataList toClone = (BinaryDataList)obj;
            if(obj.ParentUID != UID)
            {
                ParentUID = toClone.ParentUID;
            }
            IList<string> lamdaErrors = new List<string>();
            IList<string> errorList = new List<string>();
            IList<string> unionKeyHits = new List<string>();

            // clone the dictionary
            IList<string> tmp = _templateDict.Keys.ToList();  // must be this way since we modify the collection...
            foreach(string e in tmp)
            {
                string error;
                IBinaryDataListEntry cloned;

                if(typeOf == enDataListMergeTypes.Union)
                {
                    // fetch this instance via clone, fetch toClone instance and merge the data
                    IBinaryDataListEntry fetchTmp;
                    if(toClone._templateDict.TryGetValue(e, out fetchTmp))
                    {
                        unionKeyHits.Add(e);
                        cloned = fetchTmp.Clone(depth, UID, out error);
                        if(error != string.Empty)
                        {
                            lamdaErrors.Add(error);
                        }
                        else
                        {
                            DepthMerge(depth, cloned, e, out lamdaErrors);
                        }

                        // We need to ensure that the intellisense dictionary is populated with this key ;)

                    }
                }
                else if(typeOf == enDataListMergeTypes.Intersection)
                {
                    IBinaryDataListEntry toFetch;
                    if(toClone.TryGetEntry(e, out toFetch, out error))
                    {
                        cloned = toClone._templateDict[e].Clone(depth, UID, out error);
                        if(error != string.Empty)
                        {
                            lamdaErrors.Add(error);
                        }
                        else
                        {
                            DepthMerge(depth, cloned, e, out lamdaErrors);
                        }
                    }
                    else
                    {
                        lamdaErrors.Add("Missing DataList item [ " + e + " ] ");
                    }
                }

                // compile error list ?!
                foreach(string err in lamdaErrors)
                {
                    errorList.Add(err);
                }
                lamdaErrors.Clear();
            }


            // now process key misses for union
            if(typeOf == enDataListMergeTypes.Union)
            {
                //toClone._templateDict.Keys
                foreach(string k in (toClone._templateDict.Keys.ToArray().Except(unionKeyHits)))
                {
                    string error;
                    IBinaryDataListEntry cloned = toClone._templateDict[k].Clone(depth, UID, out error);
                    if(error != string.Empty)
                    {
                        lamdaErrors.Add(error);
                    }
                    else
                    {
                        DepthMerge(depth, cloned, k, out lamdaErrors);
                    }
                }
            }

            // now build the silly composite object since lamba is an daft construct
            // how about proper exception handling MS?!
            foreach(string err in errorList)
            {
                errorResult.AddError(err);
            }
        }
        /// <summary>
        ///     Creates the XML data from binary data list.
        /// </summary>
        /// <param name="binaryDataList">The binary data list.</param>
        /// <param name="errors">The errors.</param>
        /// <returns></returns>
        private string CreateXmlDataFromBinaryDataList(IBinaryDataList binaryDataList, out ErrorResultTO errors)
        {
            IDataListCompiler compiler = DataListFactory.CreateDataListCompiler();
            Guid dlGuid = compiler.PushBinaryDataList(binaryDataList.UID, binaryDataList, out errors);
            string result = compiler.ConvertFrom(dlGuid,
                                                  DataListFormat.CreateFormat(GlobalConstants._Studio_XML),
                                                  enTranslationDepth.Shape, out errors).ToString();

            return result;
        }
        public List<DebugItem> GetDebugInputs(IList<IDev2Definition> inputs, IBinaryDataList dataList, ErrorResultTO errors)
        {
            if(errors == null)
            {
                throw new ArgumentNullException("errors");
            }

            var results = new List<DebugItem>();
            foreach(IDev2Definition dev2Definition in inputs)
            {
                var variableName = GetVariableName(dev2Definition);
                DebugItem itemToAdd = new DebugItem();
                AddDebugItem(new DebugEvalResult(variableName, "", DataObject.Environment), itemToAdd);
                results.Add(itemToAdd);
            }

            foreach(IDebugItem debugInput in results)
            {
                debugInput.FlushStringBuilder();
            }

            return results;
        }
Exemplo n.º 55
0
 public bool WriteDataList(Guid id, IBinaryDataList data, out ErrorResultTO errors)
 {
     errors = new ErrorResultTO();
     return _persistence.WriteDataList(id, data, errors);
 }
        /// <summary>
        ///     Converts a binary data list to list a data list item view models.
        /// </summary>
        /// <param name="dataListToConvert">The data list to convert.</param>
        /// <param name="errorString">The error string.</param>
        /// <returns></returns>
        private void ConvertBinaryDataListToListOfIDataListItemModels(IBinaryDataList dataListToConvert,
                                                                      out string errorString)
        {
            errorString = string.Empty;
            RecsetCollection.Clear();
            ScalarCollection.Clear();

            IList<IBinaryDataListEntry> listOfEntries = dataListToConvert.FetchAllEntries();

            foreach(var entry in listOfEntries)
            {
                if(entry.IsRecordset)
                {
                    var recset = DataListItemModelFactory.CreateDataListModel(entry.Namespace, entry.Description, entry.ColumnIODirection);

                    recset.IsEditable = entry.IsEditable;

                    foreach(var col in entry.Columns)
                    {
                        var child = DataListItemModelFactory.CreateDataListModel(col.ColumnName, col.ColumnDescription, col.ColumnIODirection);

                        child.Parent = recset;
                        child.IsEditable = col.IsEditable;
                        recset.Children.Add(child);
                    }

                    RecsetCollection.Add(recset);
                }
                else
                {
                    var scalar = DataListItemModelFactory.CreateDataListModel(entry.Namespace, entry.Description, entry.ColumnIODirection);

                    scalar.IsEditable = entry.IsEditable;
                    ScalarCollection.Add(scalar);
                }
            }
        }
 public DataTable ConvertToDataTable(IBinaryDataList input, string recsetName, out ErrorResultTO errors, PopulateOptions populateOptions)
 {
     errors = null;
     throw new NotImplementedException();
 }
 public StringBuilder ConvertAndFilter(IBinaryDataList input, StringBuilder filterShape, out ErrorResultTO errors)
 {
     throw new NotImplementedException();
 }
 public string GetXMLForInputs(IBinaryDataList binaryDataList)
 {
     IDataListCompiler compiler = DataListFactory.CreateDataListCompiler();
     ErrorResultTO errors;
     return
         compiler.ConvertFrom(binaryDataList.UID, DataListFormat.CreateFormat(GlobalConstants._XML_Inputs_Only),
             enTranslationDepth.Data, out errors).ToString();
 }
Exemplo n.º 60
0
        public StringBuilder ConvertAndFilter(IBinaryDataList payload, StringBuilder filterShape, out ErrorResultTO errors)
        {
            if(payload == null)
            {
                throw new ArgumentNullException("payload");
            }

            StringBuilder result = new StringBuilder("<" + RootTag + ">");
            errors = new ErrorResultTO();
            string error;

            IBinaryDataList targetDl = BuildTargetShape(filterShape, out error);

            IList<string> itemKeys = targetDl.FetchAllKeys();

            foreach(string key in itemKeys)
            {
                IBinaryDataListEntry entry;
                IBinaryDataListEntry tmpEntry;
                if(payload.TryGetEntry(key, out entry, out error) && targetDl.TryGetEntry(key, out tmpEntry, out error))
                {

                    if(entry.IsRecordset)
                    {
                        DoRecordSetAppending(errors, entry, result);
                    }
                    else
                    {
                        string fName = entry.Namespace;
                        IBinaryDataListItem val = entry.FetchScalar();
                        if(val != null)
                        {
                            DoScalarAppending(result, fName, val);
                        }
                    }
                }

            }

            result.Append("</" + RootTag + ">");

            return result;
        }