Beispiel #1
0
        /// <summary>
        /// returns a dictionnary of [nameOfIdentificator, Cell(x,y)]
        /// </summary>
        private Dictionary <string, Tuple <int, int> > FindIndicatorNames(TableFormattedObject tableObject)
        {
            Debug.WriteLine("Searching for IndicatorNames and Aliases in the title...");

            var indicatorNamesWithCells = new Dictionary <string, Tuple <int, int> >();
            var indicatorNamesFromDb    = _dataBaseAccessor.GetQualityIndicatorTypes().Select(x => x.indicatorName).ToList();
            var indicatorAliasesFromDb  = _dataBaseAccessor.GetQualityIndicatorTypeMappings().Select(x => x.indicatorAlias).ToList();

            //iterate through all rows of title on the search for indicator names
            for (int i = 0; i < tableObject.NumberOfTitleRows; i++)
            {
                for (var j = 0; j < tableObject.Cells[i].Count; j++)
                {
                    var currentCell = tableObject.Cells[i][j];
                    if (indicatorNamesWithCells.ContainsKey(currentCell))
                    {
                        continue;
                    }
                    if (indicatorNamesFromDb.Contains(currentCell))
                    {
                        Debug.WriteLine($"Indicator [{currentCell}] found at ({i},{j})");
                        indicatorNamesWithCells.Add(currentCell, new Tuple <int, int>(i, j));
                    }
                    else if (indicatorAliasesFromDb.Contains(currentCell))
                    {
                        var indicatorName = _utilityDataBaseAccessor.GetIndicatorForAlias(currentCell);
                        Debug.WriteLine($"[{currentCell}] found at ({i},{j}) is an alias for [{indicatorName}]");
                        indicatorNamesWithCells.Add(indicatorName, new Tuple <int, int>(i, j));
                    }
                }
            }

            Debug.WriteLine("Searching for IndicatorNames and Aliases in the rows...");

            //iterate through all rows of title on the search for indicator names
            for (var i = 0; i < tableObject.Cells[tableObject.NumberOfTitleRows].Count; i++)
            {
                var currentCell = tableObject.Cells[tableObject.NumberOfTitleRows][i];
                if (indicatorNamesWithCells.ContainsKey(currentCell))
                {
                    continue;
                }
                if (indicatorNamesFromDb.Contains(currentCell))
                {
                    Debug.WriteLine($"Indicator [{currentCell}] found at ({tableObject.NumberOfTitleRows},{i})");
                    indicatorNamesWithCells.Add(currentCell, new Tuple <int, int>(tableObject.NumberOfTitleRows, i));
                }
                else if (indicatorAliasesFromDb.Contains(currentCell))
                {
                    var indicatorName = _utilityDataBaseAccessor.GetIndicatorForAlias(currentCell);
                    Debug.WriteLine($"[{currentCell}] found at ({tableObject.NumberOfTitleRows},{i}) is an alias for [{indicatorName}]");
                    indicatorNamesWithCells.Add(indicatorName, new Tuple <int, int>(tableObject.NumberOfTitleRows, i));
                }
            }

            return(indicatorNamesWithCells);
        }
Beispiel #2
0
 public string GetIndicatorForAlias(string alias)
 {
     try
     {
         return(_dbViewAccessor.GetQualityIndicatorTypeMappings().FirstOrDefault(x => x.indicatorAlias == alias).indicatorName);
     }
     catch (Exception e)
     {
         throw new Exception($"Could not retreive the real name for the alias [{alias}]");
     }
 }
Beispiel #3
0
        private List <WaterQualityIndicator> MapWaterPlantAliases(List <WaterQualityIndicator> qualityIndicators)
        {
            var mappedList             = new List <WaterQualityIndicator>();
            var indicatorAliasesFromDb = _dbAccessor.GetQualityIndicatorTypeMappings().Select(x => x.indicatorAlias).ToList();

            foreach (var qualityIndicator in qualityIndicators)
            {
                var mappedQualityIndicator = qualityIndicator;

                if (_aliasNameToRealNameDict.Keys.Contains(qualityIndicator.Name))
                {
                    mappedQualityIndicator.Name = _aliasNameToRealNameDict[qualityIndicator.Name];
                }
                else if (indicatorAliasesFromDb.Contains(qualityIndicator.Name))
                {
                    mappedQualityIndicator.Name = _utilityDbAccessor.GetIndicatorForAlias(qualityIndicator.Name);
                }

                mappedList.Add(mappedQualityIndicator);
            }

            return(mappedList);
        }