コード例 #1
0
        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);
        }
コード例 #2
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);
        }
コード例 #3
0
 /// <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);
             }
         }
     }
 }
コード例 #4
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);
        }
コード例 #5
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);
            }
        }
コード例 #6
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));
 }
コード例 #7
0
 public void AddRow(IDataListItem itemToAdd)
 {
     if (itemToAdd != null && itemToAdd.CanHaveMutipleRows)
     {
         var recordset = DataList.ShapeRecordSets.FirstOrDefault(set => set.Name == itemToAdd.Recordset);
         if (recordset != null)
         {
             AddRow(itemToAdd, recordset);
         }
     }
 }
コード例 #8
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);
        }
コード例 #9
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);
 }
コード例 #10
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;
         }
     }
 }
コード例 #11
0
        private void AddObjectToObject(JObject dataListObject, IDataListItem o)
        {
            var json = string.Empty;

            if (DataListSingleton.ActiveDataList != null)
            {
                if (DataListSingleton.ActiveDataList.ComplexObjectCollection != null)
                {
                    var complexObjectItemModel = DataListSingleton.ActiveDataList.ComplexObjectCollection.SingleOrDefault(model => model.Name == o.DisplayValue);

                    if (complexObjectItemModel != null)
                    {
                        json = complexObjectItemModel.GetJson();
                    }
                }
                AddToDataListObject(dataListObject, o, json);
            }
        }
コード例 #12
0
 void AddToDataListObject(JObject dataListObject, IDataListItem o, string json)
 {
     try
     {
         var objValue = string.IsNullOrEmpty(o.Value) ? json : o.Value;
         var value    = JsonConvert.DeserializeObject(objValue) as JObject;
         var prop     = value?.Properties().FirstOrDefault(property => property.Name == o.Field);
         if (prop != null)
         {
             value = prop.Value as JObject;
         }
         dataListObject.Add(o.Field, value);
     }
     catch (Exception)
     {
         ShowInvalidDataPopupMessage();
     }
 }
コード例 #13
0
        private static void DoScalarAppending(StringBuilder result, IDataListItem val)
        {
            var fName = val.Field;

            result.Append("<");
            result.Append(fName);
            result.Append(">");
            try
            {
                result.Append(val.Value);
            }
            // ReSharper disable EmptyGeneralCatchClause
            catch (Exception)
            // ReSharper restore EmptyGeneralCatchClause
            {
            }
            result.Append("</");
            result.Append(fName);
            result.Append(">");
        }
コード例 #14
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);
        }
コード例 #15
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;
                }
            }
        }
コード例 #16
0
        /// <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);
        }
コード例 #17
0
        private static void DoScalarAppending(StringBuilder result, IDataListItem val)
        {

            var fName = val.Field;
            result.Append("<");
            result.Append(fName);
            result.Append(">");
            try
            {
                result.Append(val.Value);
            }
            // ReSharper disable EmptyGeneralCatchClause
            catch (Exception)
            // ReSharper restore EmptyGeneralCatchClause
            {
            }
            result.Append("</");
            result.Append(fName);
            result.Append(">");
        }
コード例 #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;
        }
コード例 #19
0
        /// <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)
            {
                IRecordSet recordset = DataList.ShapeRecordSets.FirstOrDefault(set => set.Name == itemToAdd.Recordset);
                if(recordset != null)
                {
                    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.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);
                    }
                }
            }
        }
コード例 #20
0
 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;
 }
コード例 #21
0
 public DataListEntry(IDataListItem selectedItem, string selectedText)
 {
     SelectedItem = selectedItem;
     SelectedText = selectedText;
 }
コード例 #22
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);
        }
コード例 #23
0
 public void SelectedDataListItemChanged(IDataListItem item)
 {
     SelectedCharacterModel = item == null ? null : (CharacterModel)item;
 }
コード例 #24
0
 /// <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)
     {
         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);
             }
             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;
 }
コード例 #25
0
 /// <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;
 }
コード例 #26
0
 private bool AddBlankRowToRecordset(IDataListItem dlItem, IList<IScalar> columns, int indexToInsertAt, int indexNum)
 {
     bool itemsAdded = false;
     if(dlItem.IsRecordset)
     {
         IList<IScalar> recsetCols = columns.Distinct(Scalar.Comparer).ToList();
         string colName = null;
         foreach(var col in recsetCols)
         {
             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,
                     IsRecordset = dlItem.IsRecordset,
                     Recordset = dlItem.Recordset,
                     Field = col.Name,
                     Description = col.Description,
                     RecordsetIndex = indexNum.ToString(CultureInfo.InvariantCulture)
                 });
                 indexToInsertAt++;
             }
             colName = col.Name;
             itemsAdded = true;
             
         }
     }
     return itemsAdded;
 }
コード例 #27
0
 /// <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);
             }
         }
     }
 }