Exemplo n.º 1
0
        void AddRow(IDataListItem itemToAdd, IRecordSet recordset)
        {
            var recsetCols = new List <IScalar>();

            foreach (var column in recordset.Columns)
            {
                var cols = column.Value.Where(scalar => scalar.IODirection == enDev2ColumnArgumentDirection.Input || scalar.IODirection == enDev2ColumnArgumentDirection.Both);
                recsetCols.AddRange(cols);
            }

            var numberOfRows = WorkflowInputs.Where(c => c.Recordset == itemToAdd.Recordset);
            IEnumerable <IDataListItem> dataListItems = numberOfRows as IDataListItem[] ?? numberOfRows.ToArray();
            var lastItem        = dataListItems.Last();
            var indexToInsertAt = WorkflowInputs.IndexOf(lastItem);
            var indexString     = lastItem.Index;
            var indexNum        = Convert.ToInt32(indexString) + 1;
            var lastRow         = dataListItems.Where(c => c.Index == indexString);
            var addRow          = false;

            foreach (var item in lastRow)
            {
                if (item.Value != string.Empty)
                {
                    addRow = true;
                }
            }
            if (addRow)
            {
                AddBlankRowToRecordset(itemToAdd, recsetCols, indexToInsertAt, indexNum);
            }
        }
Exemplo n.º 2
0
        bool AddBlankRowToRecordset(IDataListItem dlItem, IList <IScalar> columns, int indexToInsertAt, int indexNum)
        {
            var itemsAdded = false;

            if (dlItem.CanHaveMutipleRows)
            {
                IList <IScalar> recsetCols = columns.Distinct(Scalar.Comparer).ToList();
                string          colName    = null;
                foreach (var col in recsetCols.Distinct(new ScalarNameComparer()))
                {
                    if (string.IsNullOrEmpty(colName) || !colName.Equals(col.Name))
                    {
                        WorkflowInputs.Insert(indexToInsertAt + 1, new DataListItem
                        {
                            DisplayValue       = string.Concat(dlItem.Recordset, @"(", indexNum, @").", col.Name),
                            Value              = string.Empty,
                            CanHaveMutipleRows = dlItem.CanHaveMutipleRows,
                            Recordset          = dlItem.Recordset,
                            Field              = col.Name,
                            Description        = col.Description,
                            Index              = indexNum.ToString(CultureInfo.InvariantCulture)
                        });
                        indexToInsertAt++;
                    }
                    colName    = col.Name;
                    itemsAdded = true;
                }
            }
            return(itemsAdded);
        }
Exemplo n.º 3
0
        public void SetXmlData(bool includeBlank)
        {
            var dataListObject = new JObject();
            var objects        = WorkflowInputs.Where(item => item.IsObject);
            var recSets        = WorkflowInputs.Where(item => item.CanHaveMutipleRows && !item.IsObject);
            var scalars        = WorkflowInputs.Where(item => !item.CanHaveMutipleRows && !item.IsObject);

            AddScalarsToObject(scalars, dataListObject);
            AddRecordsetsToObject(recSets, dataListObject, includeBlank);
            AddObjectsToObject(objects, dataListObject);

            var dataListString = dataListObject.ToString(Formatting.Indented);

            JsonData = dataListString;
            var xml = JsonConvert.DeserializeXNode(dataListString, @"DataList", true);

            try
            {
                if (xml.Descendants().Count() == 1)
                {
                    xml = XDocument.Parse(@"<DataList></DataList>");
                }
                XmlData = XElement.Parse(xml.ToString()).ToString();
            }
            catch (Exception e)
            {
                XmlData = @"Invalid characters entered";
                Dev2Logger.Error(e.StackTrace, e, "Warewolf Error");
            }
        }
Exemplo n.º 4
0
        public bool AddBlankRow(IDataListItem selectedItem, out int indexToSelect)
        {
            indexToSelect = 1;
            var itemsAdded = false;

            if (selectedItem != null && selectedItem.CanHaveMutipleRows)
            {
                var recordset = DataList.RecordSets.FirstOrDefault(set => set.Name == selectedItem.Recordset);
                if (recordset != null)
                {
                    var recsetCols = new List <IScalar>();
                    foreach (var column in recordset.Columns)
                    {
                        recsetCols.AddRange(column.Value);
                    }
                    var numberOfRows    = WorkflowInputs.Where(c => c.Recordset == selectedItem.Recordset);
                    var lastItem        = numberOfRows.Last();
                    var indexToInsertAt = WorkflowInputs.IndexOf(lastItem);
                    var indexString     = lastItem.Index;
                    var indexNum        = Convert.ToInt32(indexString) + 1;
                    indexToSelect = indexToInsertAt + 1;
                    itemsAdded    = AddBlankRowToRecordset(selectedItem, recsetCols, indexToInsertAt, indexNum);
                }
            }
            return(itemsAdded);
        }
        private bool AddBlankRowToRecordset(IDataListItem dlItem, IList <Dev2Column> columns, int indexToInsertAt, int indexNum)
        {
            bool itemsAdded = false;

            if (dlItem.IsRecordset)
            {
                IList <Dev2Column> recsetCols = columns;
                foreach (Dev2Column col in recsetCols)
                {
                    WorkflowInputs.Insert(indexToInsertAt + 1, new DataListItem
                    {
                        DisplayValue   = string.Concat(dlItem.Recordset, "(", indexNum, ").", col.ColumnName),
                        Value          = string.Empty,
                        IsRecordset    = dlItem.IsRecordset,
                        Recordset      = dlItem.Recordset,
                        Field          = col.ColumnName,
                        Description    = col.ColumnDescription,
                        RecordsetIndex = indexNum.ToString(CultureInfo.InvariantCulture)
                    });
                    itemsAdded = true;
                    indexToInsertAt++;
                }
            }
            return(itemsAdded);
        }
 /// <summary>
 /// Used for intelligently determining if a extra row should be added for the selected recordset
 /// </summary>
 /// <param name="itemToAdd">The item that is currently selected</param>
 public void AddRow(IDataListItem itemToAdd)
 {
     if (itemToAdd != null && itemToAdd.IsRecordset)
     {
         string error;
         IBinaryDataListEntry recordset;
         DataList.TryGetEntry(itemToAdd.Recordset, out recordset, out error);
         if (recordset != null)
         {
             IList <Dev2Column> recsetCols = recordset.Columns.Where(cc => cc.ColumnIODirection == enDev2ColumnArgumentDirection.Input || cc.ColumnIODirection == enDev2ColumnArgumentDirection.Both).ToList();
             var numberOfRows = WorkflowInputs.Where(c => c.Recordset == itemToAdd.Recordset);
             IEnumerable <IDataListItem> dataListItems = numberOfRows as IDataListItem[] ?? numberOfRows.ToArray();
             var lastItem        = dataListItems.Last();
             var indexToInsertAt = WorkflowInputs.IndexOf(lastItem);
             var indexString     = lastItem.RecordsetIndex;
             var indexNum        = Convert.ToInt32(indexString) + 1;
             var lastRow         = dataListItems.Where(c => c.RecordsetIndex == indexString);
             var dontAddRow      = true;
             foreach (var item in lastRow)
             {
                 if (item.Value != string.Empty)
                 {
                     dontAddRow = false;
                 }
             }
             if (!dontAddRow)
             {
                 AddBlankRowToRecordset(itemToAdd, recsetCols, indexToInsertAt, indexNum);
             }
         }
     }
 }
Exemplo n.º 7
0
 int UpdateIndexToSelect(IDataListItem itemToRemove, IDataListItem item)
 {
     if (itemToRemove.Index == item.Index)
     {
         var item1 = item;
         return(WorkflowInputs.IndexOf(WorkflowInputs.Last(c => c.Recordset == item1.Recordset)));
     }
     return(WorkflowInputs.IndexOf(itemToRemove));
 }
        public string BuildWebPayLoad()
        {
            var allScalars = WorkflowInputs.All(item => !item.IsRecordset);

            if (allScalars && WorkflowInputs.Count > 0)
            {
                return(WorkflowInputs.Aggregate("", (current, workflowInput) => current + (workflowInput.Field + "=") + workflowInput.Value + "&").TrimEnd('&'));
            }
            return(XElement.Parse(XmlData).ToString(SaveOptions.DisableFormatting));
        }
        /// <summary>
        /// Used to transform the XML into WorkflowInputs
        /// </summary>
        public void SetWorkflowInputData()
        {
            string error;

            DataList = Broker.DeSerialize(XmlData, DebugTo.DataList, enTranslationTypes.XML, out error);
            if (string.IsNullOrEmpty(error))
            {
                WorkflowInputs.Clear();
                _dataListConversionUtils.CreateListToBindTo(DataList).ToList().ForEach(i => WorkflowInputs.Add(i));
            }
        }
        /// <summary>
        /// Used for loading all the inputs from the saved data or the data list
        /// </summary>
        public void LoadWorkflowInputs()
        {
            WorkflowInputs.Clear();
            Broker         = Dev2StudioSessionFactory.CreateBroker();
            DebugTo        = Broker.InitDebugSession(DebugTo);
            XmlData        = DebugTo.XmlData;
            RememberInputs = DebugTo.RememberInputs;
            DataList       = DebugTo.BinaryDataList;

            // Flipping Jurie....
            var myList = _dataListConversionUtils.CreateListToBindTo(DebugTo.BinaryDataList);

            WorkflowInputs.AddRange(myList);
        }
Exemplo n.º 11
0
        /// <summary>
        /// Used for removing a row for the collection
        /// </summary>
        /// <param name="itemToRemove">The item that will be removed from the collection</param>
        /// <param name="indexToSelect"></param>
        public bool RemoveRow(IDataListItem itemToRemove, out int indexToSelect)
        {
            indexToSelect = 1;
            var itemsRemoved = false;

            if (itemToRemove != null && itemToRemove.CanHaveMutipleRows)
            {
                var numberOfRows = WorkflowInputs.Count(c => c.Recordset == itemToRemove.Recordset && c.Field == itemToRemove.Field);
                List <IDataListItem> listToRemove = WorkflowInputs.Where(c => c.Index == numberOfRows.ToString(CultureInfo.InvariantCulture) && c.Recordset == itemToRemove.Recordset).ToList();

                if (numberOfRows == 2)
                {
                    IEnumerable <IDataListItem> firstRow = WorkflowInputs.Where(c => c.Index == @"1" && c.Recordset == itemToRemove.Recordset);
                    bool removeRow = firstRow.All(item => string.IsNullOrWhiteSpace(item.Value));

                    if (removeRow)
                    {
                        IEnumerable <IDataListItem> listToChange = WorkflowInputs.Where(c => c.Index == @"2" && c.Recordset == itemToRemove.Recordset);

                        foreach (IDataListItem item in listToChange)
                        {
                            item.Value = string.Empty;
                        }
                        foreach (IDataListItem item in listToRemove)
                        {
                            WorkflowInputs.Remove(item);
                            indexToSelect = UpdateIndexToSelect(itemToRemove, item);
                            itemsRemoved  = true;
                        }
                    }
                }
                else if (numberOfRows > 2)
                {
                    IEnumerable <IDataListItem> listToChange = WorkflowInputs.Where(c => c.Index == (numberOfRows - 1).ToString(CultureInfo.InvariantCulture) && c.Recordset == itemToRemove.Recordset);
                    foreach (IDataListItem item in listToChange)
                    {
                        item.Value = string.Empty;
                    }
                    foreach (IDataListItem item in listToRemove)
                    {
                        WorkflowInputs.Remove(item);
                        indexToSelect = UpdateIndexToSelect(itemToRemove, item);
                        itemsRemoved  = true;
                    }
                }
            }
            return(itemsRemoved);
        }
Exemplo n.º 12
0
 public IDataListItem GetPreviousRow(IDataListItem selectedItem)
 {
     if (selectedItem != null)
     {
         var indexToInsertAt = WorkflowInputs.IndexOf(selectedItem);
         if (indexToInsertAt != -1)
         {
             var indexOfItemToGet = indexToInsertAt - 1;
             if (indexOfItemToGet == WorkflowInputs.Count || indexOfItemToGet == -1)
             {
                 return(selectedItem);
             }
             return(WorkflowInputs[indexOfItemToGet]);
         }
     }
     return(null);
 }
Exemplo n.º 13
0
        public string BuildWebPayLoad()
        {
            var allScalars = WorkflowInputs.All(item => !item.CanHaveMutipleRows && !item.IsObject);

            if (allScalars && WorkflowInputs.Count > 0)
            {
                return(WorkflowInputs.Aggregate(string.Empty, (current, workflowInput) => current + workflowInput.Field + @"=" + workflowInput.Value + @"&").TrimEnd('&'));
            }
            try
            {
                return(XElement.Parse(XmlData).ToString(SaveOptions.DisableFormatting));
            }
            catch (Exception)
            {
                return(string.Empty);
            }
        }
Exemplo n.º 14
0
 void RemoveRows(IDataListItem itemToRemove, ref int indexToSelect, ref bool itemsRemoved, List <IDataListItem> listToRemove, int numberOfRows)
 {
     if (numberOfRows > 2)
     {
         var listToChange = WorkflowInputs.Where(c => c.Index == (numberOfRows - 1).ToString(CultureInfo.InvariantCulture) && c.Recordset == itemToRemove.Recordset);
         foreach (IDataListItem item in listToChange)
         {
             item.Value = string.Empty;
         }
         foreach (IDataListItem item in listToRemove)
         {
             WorkflowInputs.Remove(item);
             indexToSelect = UpdateIndexToSelect(itemToRemove, item);
             itemsRemoved  = true;
         }
     }
 }
Exemplo n.º 15
0
        public bool RemoveRow(IDataListItem itemToRemove, out int indexToSelect)
        {
            indexToSelect = 1;
            var itemsRemoved = false;

            if (itemToRemove != null && itemToRemove.CanHaveMutipleRows)
            {
                var numberOfRows = WorkflowInputs.Count(c => c.Recordset == itemToRemove.Recordset && c.Field == itemToRemove.Field);
                var listToRemove = WorkflowInputs.Where(c => c.Index == numberOfRows.ToString(CultureInfo.InvariantCulture) && c.Recordset == itemToRemove.Recordset).ToList();

                if (numberOfRows == 2)
                {
                    RemoveRow(itemToRemove, ref indexToSelect, ref itemsRemoved, listToRemove);
                }
                else
                {
                    RemoveRows(itemToRemove, ref indexToSelect, ref itemsRemoved, listToRemove, numberOfRows);
                }
            }
            return(itemsRemoved);
        }
Exemplo n.º 16
0
        void RemoveRow(IDataListItem itemToRemove, ref int indexToSelect, ref bool itemsRemoved, List <IDataListItem> listToRemove)
        {
            var firstRow  = WorkflowInputs.Where(c => c.Index == @"1" && c.Recordset == itemToRemove.Recordset);
            var removeRow = firstRow.All(item => string.IsNullOrWhiteSpace(item.Value));

            if (removeRow)
            {
                var listToChange = WorkflowInputs.Where(c => c.Index == @"2" && c.Recordset == itemToRemove.Recordset);

                foreach (IDataListItem item in listToChange)
                {
                    item.Value = string.Empty;
                }
                foreach (IDataListItem item in listToRemove)
                {
                    WorkflowInputs.Remove(item);
                    indexToSelect = UpdateIndexToSelect(itemToRemove, item);
                    itemsRemoved  = true;
                }
            }
        }
        /// <summary>
        /// Used for just adding a blank row to a recordset
        /// </summary>
        /// <param name="selectedItem">The item that is currently selected</param>
        /// <param name="indexToSelect"></param>
        public bool AddBlankRow(IDataListItem selectedItem, out int indexToSelect)
        {
            indexToSelect = 1;
            bool itemsAdded = false;

            if (selectedItem != null && selectedItem.IsRecordset)
            {
                string error;
                IBinaryDataListEntry recordset;
                DataList.TryGetEntry(selectedItem.Recordset, out recordset, out error);
                if (recordset != null)
                {
                    IList <Dev2Column>          recsetCols   = recordset.Columns;
                    IEnumerable <IDataListItem> numberOfRows = WorkflowInputs.Where(c => c.Recordset == selectedItem.Recordset);
                    IDataListItem lastItem        = numberOfRows.Last();
                    int           indexToInsertAt = WorkflowInputs.IndexOf(lastItem);
                    string        indexString     = lastItem.RecordsetIndex;
                    int           indexNum        = Convert.ToInt32(indexString) + 1;
                    indexToSelect = indexToInsertAt + 1;
                    itemsAdded    = AddBlankRowToRecordset(selectedItem, recsetCols, indexToInsertAt, indexNum);
                }
            }
            return(itemsAdded);
        }
Exemplo n.º 18
0
        /// <summary>
        /// Used for removing a row for the collection
        /// </summary>
        /// <param name="itemToRemove">The item that will be removed from the collection</param>
        /// <param name="indexToSelect"></param>
        public bool RemoveRow(IDataListItem itemToRemove, out int indexToSelect)
        {
            indexToSelect = 1;
            var itemsRemoved = false;

            if (itemToRemove != null && itemToRemove.IsRecordset)
            {
                // ReSharper disable InconsistentNaming
                IEnumerable <IDataListItem> NumberOfRows = WorkflowInputs.Where(c => c.Recordset == itemToRemove.Recordset && c.Field == itemToRemove.Field);
                // ReSharper restore InconsistentNaming
                var numberOfRows = NumberOfRows.Count();
                List <IDataListItem> listToRemove = WorkflowInputs.Where(c => c.RecordsetIndex == numberOfRows.ToString(CultureInfo.InvariantCulture) && c.Recordset == itemToRemove.Recordset).ToList();

                if (numberOfRows == 2)
                {
                    IEnumerable <IDataListItem> firstRow = WorkflowInputs.Where(c => c.RecordsetIndex == "1" && c.Recordset == itemToRemove.Recordset);
                    bool removeRow = firstRow.All(item => string.IsNullOrWhiteSpace(item.Value));

                    if (removeRow)
                    {
                        IEnumerable <IDataListItem> listToChange = WorkflowInputs.Where(c => c.RecordsetIndex == "2" && c.Recordset == itemToRemove.Recordset);

                        foreach (IDataListItem item in listToChange)
                        {
                            item.Value = string.Empty;
                        }
                        foreach (IDataListItem item in listToRemove)
                        {
                            WorkflowInputs.Remove(item);
                            // ReSharper disable once ConvertIfStatementToConditionalTernaryExpression
                            if (itemToRemove.RecordsetIndex == item.RecordsetIndex)
                            {
                                IDataListItem item1 = item;
                                indexToSelect = WorkflowInputs.IndexOf(WorkflowInputs.Last(c => c.Recordset == item1.Recordset));
                            }
                            else
                            {
                                indexToSelect = WorkflowInputs.IndexOf(itemToRemove);
                            }
                            itemsRemoved = true;
                        }
                    }
                }
                else if (numberOfRows > 2)
                {
                    IEnumerable <IDataListItem> listToChange = WorkflowInputs.Where(c => c.RecordsetIndex == (numberOfRows - 1).ToString(CultureInfo.InvariantCulture) && c.Recordset == itemToRemove.Recordset);
                    foreach (IDataListItem item in listToChange)
                    {
                        item.Value = string.Empty;
                    }
                    foreach (IDataListItem item in listToRemove)
                    {
                        WorkflowInputs.Remove(item);
                        // ReSharper disable once ConvertIfStatementToConditionalTernaryExpression
                        if (itemToRemove.RecordsetIndex == item.RecordsetIndex)
                        {
                            IDataListItem item1 = item;
                            indexToSelect = WorkflowInputs.IndexOf(WorkflowInputs.Last(c => c.Recordset == item1.Recordset));
                        }
                        else
                        {
                            indexToSelect = WorkflowInputs.IndexOf(itemToRemove);
                        }
                        itemsRemoved = true;
                    }
                }
            }
            return(itemsRemoved);
        }
Exemplo n.º 19
0
 public void SetWorkflowInputData()
 {
     WorkflowInputs.Clear();
     DataList.PopulateWithData(XmlData);
     _dataListConversionUtils.CreateListToBindTo(DataList).ToList().ForEach(i => WorkflowInputs.Add(i));
 }