Ejemplo n.º 1
0
        public static DmnInfo AddVariablesToDictionary(ref DmnInfo dmnInfo, string variableId, string variableName, string variableType, string type)
        {
            var list = new List <VariablesInfo>()
            {
                new VariablesInfo()
                {
                    VariabelId   = variableId,
                    VariabelName = variableName,
                    VariabelType = variableType,
                }
            };

            if (type == "input")
            {
                if (dmnInfo.InputVariablesInfo != null)
                {
                    var listTemp = dmnInfo.InputVariablesInfo.ToList();
                    list = listTemp.Concat(list).ToList();
                }
                dmnInfo.InputVariablesInfo = list.ToArray();
            }
            if (type == "output")
            {
                if (dmnInfo.OutputVariablesInfo != null)
                {
                    var listTemp = dmnInfo.OutputVariablesInfo.ToList();
                    list = listTemp.Concat(list).ToList();
                }
                dmnInfo.OutputVariablesInfo = list.ToArray();
            }
            return(dmnInfo);
        }
Ejemplo n.º 2
0
        //---- Data Dictionary
        public static void GetDecisionsVariables(tDecision tdecision, string fileName, ref List <DmnInfo> dataDictionaryList)
        {
            var decisionTable = (tDecisionTable)tdecision.Item;
            var dmnInfo       = new DmnInfo()
            {
                FileName = $"{fileName}.dmn",
                DmnId    = tdecision.id,
                DmnName  = tdecision.name,
            };


            foreach (var inputClause in decisionTable.input)
            {
                //add input variable to DMN

                //var dictionary = AddVariablesToDictionary(fileName, decisionId, decisionName, inputClause.id, inputClause.label,inputClause.inputExpression.typeRef.Name, "input");
                var dictionary = AddVariablesToDictionary(ref dmnInfo, inputClause.inputExpression.Item.ToString(), inputClause.label,
                                                          inputClause.inputExpression.typeRef.Name, "input");
            }

            foreach (var outputClause in decisionTable.output)
            {
                // Add Output variable name
                var dictionary = AddVariablesToDictionary(ref dmnInfo, outputClause.name, outputClause.label,
                                                          outputClause.typeRef.Name, "output");
            }

            dataDictionaryList.Add(dmnInfo);
        }
Ejemplo n.º 3
0
        public void GetRowAndColumIndexTest()
        {
            DmnInfo dmnInfo = new DmnInfo()
            {
                DmnId    = "id_01",
                DmnName  = "Dmn_Test",
                FileName = "Dmn_test.dmn"
            };

            DmnConverter.AddVariablesToDictionary(ref dmnInfo, "col_01", "Column 01", "String", "input");
            DmnConverter.AddVariablesToDictionary(ref dmnInfo, "col_02", "Column 02", "String", "input");
            DmnConverter.AddVariablesToDictionary(ref dmnInfo, "col_03", "Column 03", "String", "input");

            dmnInfo.InputVariablesInfo.Length.Should().Be(3);
        }
Ejemplo n.º 4
0
        private static void AddVariableInfoExcelTableRowData(DmnInfo dmnInfo, VariablesInfo variableInfo, int rowIndex, ExcelWorksheet wsSheet, string[] dmnFields, string variableUseType = null)
        {
            var startTableCellAddress = wsSheet.Tables.FirstOrDefault()?.Address.Start.Address;

            for (int i = 0; i < dmnFields.Length; i++)
            {
                var value = GetPropertyStringValue(dmnInfo, dmnFields[i]) ?? GetPropertyStringValue(variableInfo, dmnFields[i]);
                if (dmnFields[i] == "VariablesUseType" && !string.IsNullOrEmpty(variableUseType))
                {
                    value = variableUseType;
                }
                var cellAdress = AddRowAndColumnToCellAddress(startTableCellAddress, rowIndex + 1, i);
                wsSheet.Cells[cellAdress].Value = value;
            }
        }