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); }
//---- 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); }
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); }
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; } }