/// <summary>
 /// Initializes an instance with the specified information.
 /// </summary>
 /// <param name="conclusions">All conclusions.</param>
 /// <param name="views">All views.</param>
 /// <param name="exocet">The exocet.</param>
 /// <param name="digits">All digits.</param>
 /// <param name="endoTargetCell">The endo target cell.</param>
 /// <param name="targetEliminations">The target eliminations.</param>
 /// <param name="trueBaseEliminations">The true base eliminations.</param>
 /// <param name="mirrorEliminations">The mirror eliminations.</param>
 /// <param name="compatibilityEliminations">The compatibility eliminations.</param>
 public SeniorExocetTechniqueInfo(
     IReadOnlyList <Conclusion> conclusions, IReadOnlyList <View> views, Exocet exocet,
     IEnumerable <int> digits, int endoTargetCell, TargetEliminations targetEliminations,
     TrueBaseEliminations trueBaseEliminations, MirrorEliminations mirrorEliminations,
     CompatibilityTestEliminations compatibilityEliminations)
     : base(
         conclusions, views, exocet, digits, TechniqueCode.Se, null, null,
         targetEliminations, mirrorEliminations, default, default, default,
         trueBaseEliminations, compatibilityEliminations) =>
 /// <summary>
 /// Initializes an instance with the specified information.
 /// </summary>
 /// <param name="conclusions">All conclusions.</param>
 /// <param name="views">All views.</param>
 /// <param name="exocet">The exocet.</param>
 /// <param name="digits">All digits.</param>
 /// <param name="lockedMemberQ">The locked member Q.</param>
 /// <param name="lockedMemberR">The locked member R.</param>
 /// <param name="targetEliminations">The target eliminations.</param>
 /// <param name="mirrorEliminations">The mirror eliminations.</param>
 /// <param name="bibiEliminations">The Bi-bi pattern eliminations.</param>
 /// <param name="targetPairEliminations">The target pair eliminations.</param>
 /// <param name="swordfishEliminations">The swordfish pattern eliminations.</param>
 public JuniorExocetTechniqueInfo(
     IReadOnlyList <Conclusion> conclusions, IReadOnlyList <View> views, Exocet exocet,
     IEnumerable <int> digits, IEnumerable <int>?lockedMemberQ, IEnumerable <int>?lockedMemberR,
     TargetEliminations targetEliminations, MirrorEliminations mirrorEliminations,
     BibiPatternEliminations bibiEliminations, TargetPairEliminations targetPairEliminations,
     SwordfishEliminations swordfishEliminations)
     : base(
         conclusions, views, exocet, digits, TechniqueCode.Je,
         lockedMemberQ, lockedMemberR, targetEliminations, mirrorEliminations,
         bibiEliminations, targetPairEliminations, swordfishEliminations, default, default)
 {
 }
Esempio n. 3
0
        /// <summary>
        /// Initializes an instance with the specified information.
        /// </summary>
        /// <param name="conclusions">All conclusions.</param>
        /// <param name="views">All views.</param>
        /// <param name="exocet">The exocet.</param>
        /// <param name="digits">All digits.</param>
        /// <param name="techniqueCode">The technique code.</param>
        /// <param name="lockedMemberQ">The locked member Q.</param>
        /// <param name="lockedMemberR">The locked member R.</param>
        /// <param name="targetEliminations">The target eliminations.</param>
        /// <param name="mirrorEliminations">The mirror eliminations.</param>
        /// <param name="bibiEliminations">
        /// The Bi-bi pattern eliminations (only used for junior exocets).
        /// </param>
        /// <param name="targetPairEliminations">
        /// The target pair eliminations (only used for junior exocets).
        /// </param>
        /// <param name="swordfishEliminations">
        /// The swordfish pattern eliminations (only used for junior exocets).
        /// </param>
        /// <param name="trueBaseEliminations">
        /// The true base eliminations (only used for senior exocets).
        /// </param>
        /// <param name="compatibilityEliminations">
        /// The compatibility test eliminations (only used for senior exocets).
        /// </param>
        public ExocetTechniqueInfo(
            IReadOnlyList <Conclusion> conclusions, IReadOnlyList <View> views,
            Exocet exocet, IEnumerable <int> digits, TechniqueCode techniqueCode,
            IEnumerable <int>?lockedMemberQ, IEnumerable <int>?lockedMemberR,
            TargetEliminations targetEliminations, MirrorEliminations mirrorEliminations,
            BibiPatternEliminations bibiEliminations, TargetPairEliminations targetPairEliminations,
            SwordfishEliminations swordfishEliminations, TrueBaseEliminations trueBaseEliminations,
            CompatibilityTestEliminations compatibilityEliminations)
            : base(conclusions, views)
        {
            (Exocet, Digits, TechniqueCode, LockedMemberQ, LockedMemberR) = (exocet, digits, techniqueCode, lockedMemberQ, lockedMemberR);

            var list = (List <Conclusion>)Conclusions;

            if (!((TargetEliminations = targetEliminations).Conclusions is null))
            {
                list.AddRange(TargetEliminations);
            }
            if (!((MirrorEliminations = mirrorEliminations).Conclusions is null))
            {
                list.AddRange(MirrorEliminations);
            }
            if (!((BibiEliminations = bibiEliminations).Conclusions is null))
            {
                list.AddRange(BibiEliminations);
            }
            if (!((TargetPairEliminations = targetPairEliminations).Conclusions is null))
            {
                list.AddRange(TargetPairEliminations);
            }
            if (!((SwordfishEliminations = swordfishEliminations).Conclusions is null))
            {
                list.AddRange(SwordfishEliminations);
            }
            if (!((TrueBaseEliminations = trueBaseEliminations).Conclusions is null))
            {
                list.AddRange(TrueBaseEliminations);
            }
            if (!((CompatibilityTestEliminations = compatibilityEliminations).Conclusions is null))
            {
                list.AddRange(CompatibilityTestEliminations);
            }

            var temp = Conclusions.Distinct().ToList();             // Call 'ToList' to execute the query forcedly.

            list.Clear();
            list.AddRange(temp);
        }