Beispiel #1
0
 public UniformPartsFinalResults(bool needToMerge, AlgorithmActiveLOType type)
 {
     Items = new List<UniformPartRow>();
     _helperData = new UniformPartsHelperData("Актуальные ОЧ");
     _needToMerge = needToMerge;
     _algorithmActiveLOType = type;
 }
        public void AddOrUpdateUniformPart(SentenceElement uniformPart, string rowNr, int featureLinkConjunction,
            int featureLinkComma, AlgorithmActiveLOType upType)
        {
            Debug.Assert(upType == AlgorithmActiveLOType.UniformParts || upType == AlgorithmActiveLOType.UniformPartsStandart || upType == AlgorithmActiveLOType.UniformPartsBaseRows);

            if (upType == AlgorithmActiveLOType.UniformPartsStandart)
            {
                _finalResults.UniformPartsFinalResultsStandart.AddOrUpdateUniformPart(uniformPart, rowNr, -1, -1);
                _finalResults.UniformPartsFinalResultsBaseRows.AddOrUpdateUniformPart(uniformPart, rowNr, featureLinkConjunction, featureLinkComma);
                _finalResults.UniformPartsFinalResults.AddOrUpdateUniformPart(uniformPart, rowNr, featureLinkConjunction, featureLinkComma);
            }
            else if (upType == AlgorithmActiveLOType.UniformPartsBaseRows)
            {
                _finalResults.UniformPartsFinalResultsBaseRows.AddOrUpdateUniformPart(uniformPart, rowNr, featureLinkConjunction, featureLinkComma);
                _finalResults.UniformPartsFinalResults.AddOrUpdateUniformPart(uniformPart, rowNr, featureLinkConjunction, featureLinkComma);
            }
            else if (upType == AlgorithmActiveLOType.UniformParts)
                _finalResults.UniformPartsFinalResults.AddOrUpdateUniformPart(uniformPart, rowNr, featureLinkConjunction, featureLinkComma);
        }
        public void RemoveUniformPart(int uniformPartId, AlgorithmActiveLOType upType)
        {
            Debug.Assert(upType == AlgorithmActiveLOType.UniformParts || upType == AlgorithmActiveLOType.UniformPartsStandart || upType == AlgorithmActiveLOType.UniformPartsBaseRows);

            var upsToProcess = new List<UniformPartsFinalResults>();
            if (upType == AlgorithmActiveLOType.UniformPartsStandart)
            {
                upsToProcess.Add(_finalResults.UniformPartsFinalResultsStandart);
                upsToProcess.Add(_finalResults.UniformPartsFinalResultsBaseRows);
                upsToProcess.Add(_finalResults.UniformPartsFinalResults);
            }
            else if (upType == AlgorithmActiveLOType.UniformPartsBaseRows)
            {
                upsToProcess.Add(_finalResults.UniformPartsFinalResultsBaseRows);
                upsToProcess.Add(_finalResults.UniformPartsFinalResults);
            }
            else if (upType == AlgorithmActiveLOType.UniformParts)
                upsToProcess.Add(_finalResults.UniformPartsFinalResults);

            foreach (var up in upsToProcess)
                up.RemoveUniformPart(uniformPartId);
        }