private Dictionary <string, bool> GetVariablesCategState()
        {
            Dictionary <string, List <string> > categAcrosPerType = new Dictionary <string, List <string> >();

            foreach (VarConfig.AcronymRow acroRow in _varConfigFacade._varConfig.Acronym)
            {
                if (acroRow.GetCategoryRows().Count() == 0)
                {
                    continue;
                }
                string varType = acroRow.AcronymLevelRow.AcronymTypeRow.ShortName.ToLower();
                if (!categAcrosPerType.ContainsKey(varType))
                {
                    categAcrosPerType.Add(varType, new List <string>());
                }
                categAcrosPerType[varType].Add(acroRow.Name.ToLower());
            }

            Dictionary <string, bool> categStates = new Dictionary <string, bool>();

            foreach (VarConfig.VariableRow varRow in _varConfigFacade.GetVariables())
            {
                string varType = GetVariableType(varRow.Name).ToLower();
                bool   isCateg = false;
                foreach (string acro in AcronymManager.GetAcronymsUsedByVariable(varRow.Name))
                {
                    if (categAcrosPerType.ContainsKey(varType) && categAcrosPerType[varType].Contains(acro.ToLower()))
                    {
                        isCateg = true; break;
                    }
                }
                categStates.Add(varRow.ID, isCateg);
            }
            return(categStates);
        }
Exemple #2
0
 internal void HandleChangeAcronymAction(CellValueChangedEventArgs eventArgs)
 {
     if (AcronymManager.IsTypeNode(eventArgs.Node))
     {
         _variablesForm.PerformAction(new ChangeAcronymTypeAction(_variablesForm, eventArgs));
     }
     else if (AcronymManager.IsLevelNode(eventArgs.Node))
     {
         _variablesForm.PerformAction(new ChangeAcronymLevelAction(_variablesForm, eventArgs));
     }
     else if (AcronymManager.IsAcronymNode(eventArgs.Node))
     {
         _variablesForm.PerformAction(new ChangeAcronymAction(_variablesForm, eventArgs));
     }
 }
        private bool IsCateg(string variableName)
        {
            string varType = GetVariableType(variableName).ToLower();

            foreach (string acroName in AcronymManager.GetAcronymsUsedByVariable(variableName))
            {
                var acro = from a in _varConfigFacade.GetVarConfig().Acronym
                           where a.AcronymLevelRow.AcronymTypeRow.ShortName.ToLower() == varType && a.Name.ToLower() == acroName.ToLower()
                           select a;
                if (acro.Count() > 0 && acro.First().GetCategoryRows().Count() > 0)
                {
                    return(true);
                }
            }
            return(false);
        }
        string IsValidVariableName(string variableName, string automaticLabel, int rowIndex)
        {
            if (variableName.Length == 1)
            {
                return("Invalid variable name: too short.\n\n");
            }

            if (automaticLabel.Contains(DESCRIPTION_UNKNOWN))
            {
                return("Invalid variable name: usage of not existant acronyms or type.\n\n");
            }

            List <string> usedAcronyms = AcronymManager.GetAcronymsUsedByVariable(variableName);
            int           maxLevel     = int.MinValue;

            foreach (string acronym in usedAcronyms)
            {
                int acroLevel = _varConfigFacade.GetAcronymLevel(acronym, GetVariableType(variableName));
                if (acroLevel < maxLevel)
                {
                    return("Invalid variable name: wrong order of acronyms.\n\n");
                }
                maxLevel = acroLevel;
            }

            List <string> existingVariables = new List <string>();

            foreach (DataGridViewRow row in _dgvVariables.Rows)
            {
                if (rowIndex != _dgvVariables.Rows.IndexOf(row))
                {
                    existingVariables.Add(row.Cells[_variablesForm.colVariableName.Name].Value.ToString().ToLower());
                }
            }
            if (existingVariables.Contains(variableName.ToLower()))
            {
                int doubleRow = existingVariables.IndexOf(variableName.ToLower()) + 1;
                if (doubleRow > rowIndex)
                {
                    ++doubleRow;
                }
                return("Variable name already exists: see row " + doubleRow.ToString() + ".\n\n");
            }

            return(string.Empty);
        }