Пример #1
0
        TableData_Server GetTableDataAsTableType(
            List <AddInsParameter> ParameterList,
            int nodeId,
            string TableName)
        {
            ParameterList = ParameterList.OrderBy(q => q.RowIndex).ToList();
            int oldRowIndex = ParameterList[0].RowIndex;
            List <CellContainer> CellContainers = new List <CellContainer>();
            List <RowContainer>  RowContainers  = new List <RowContainer>();

            for (int i = 0; i < ParameterList.Count; i++)
            {
                AddInsParameter Parameter   = ParameterList[i];
                int             newRowIndex = Parameter.RowIndex;
                CellContainer   CC          = GetCellContainer(ParameterList[i],
                                                               Parameter.ColumnIndex);
                if (oldRowIndex == newRowIndex)
                {
                    CellContainers.Add(CC);
                }
                if (oldRowIndex != newRowIndex || i == ParameterList.Count - 1)
                {
                    RowContainer RC = new RowContainer(0, CellContainers);
                    RowContainers.Add(RC);
                    if (i != ParameterList.Count - 1)
                    {
                        CellContainers = new List <CellContainer>();
                        CellContainers.Add(CC);
                    }
                }
                oldRowIndex = newRowIndex;
            }
            //проверка, что во всех строках равное число столбцов
            int  CellCount      = RowContainers[0].ValueCellContainer.Count();
            bool CellCountValid =
                RowContainers.Any(q => q.ValueCellContainer.Count != CellCount);

            if (CellCountValid)
            {
                return(null);
            }

            return(new TableData_Server(nodeId,
                                        TableName,
                                        RowContainers[0].ValueCellContainer,
                                        true,
                                        RowContainers));
        }
Пример #2
0
        CellContainer GetCellContainer(AddInsParameter Parameter, int columnIndex)
        {
            ControlType   CDT          = Parameter.ControlType;
            List <string> comboboxData = null;

            if (CDT == ControlType.ComboBox)
            {
                comboboxData = Parameter.AvailableValue.ToList();
            }
            CellInfo CI = new CellInfo(Parameter.VisibleName,
                                       Parameter.PropertyName,
                                       CDT,
                                       columnIndex,
                                       comboboxData);

            return(new CellContainer(Parameter.Value, CI));
        }
Пример #3
0
        //модификация базы данных, если текущий узел - это Настройки или Проверки плагина
        public virtual bool ModifyForPluginParameters(ApplicationContext db,
                                                      TableData_Server newTD)
        {
            DB_Plugin Plugin = (DB_Plugin)ParentNode;

            List <AddInsParameter> AddInsParameters = new List <AddInsParameter>();
            List <RowContainer>    RowContainers    = newTD.RowContainers;

            for (int i = 0; i < RowContainers.Count; i++)
            {
                RowContainer RC = RowContainers[i];
                foreach (CellContainer CC in RC.ValueCellContainer)
                {
                    AddInsParameter Parameter = new AddInsParameter();
                    Parameter.TableName      = newTD.tableName;
                    Parameter.InTable        = newTD.bAddNewRow;
                    Parameter.RowIndex       = i;
                    Parameter.Value          = CC.value;
                    Parameter.VisibleName    = CC.CI.headerName;
                    Parameter.PropertyName   = CC.CI.headerPropName;
                    Parameter.ErrorMessage   = "";
                    Parameter.ColumnIndex    = CC.CI.columnIndex;
                    Parameter.ControlType    = CC.CI.ColumnType;
                    Parameter.AvailableValue = CC.CI.comboboxData.ToArray();
                    AddInsParameters.Add(Parameter);
                }
            }
            string SerializeValue = JsonConvert.SerializeObject(AddInsParameters);

            if (SerializeValue == null || SerializeValue == "")
            {
                return(false);
            }

            if (NodeType == TreeViewNodeType.Checking)
            {
                Plugin.CheckingData = SerializeValue;
            }
            if (NodeType == TreeViewNodeType.Setting)
            {
                Plugin.SettingData = SerializeValue;
            }

            return(true);
        }