示例#1
0
        public override bool IsValid(params ILegalPerson[] persons)
        {
            if (Affidavit == null)
            {
                AddReasonEntry($"{nameof(Affidavit)} is unassigned");
                return(false);
            }

            if (IsInvalidOnItsFace(Affidavit))
            {
                AddReasonEntry($"{nameof(IsInvalidOnItsFace)} is true");
                return(false);
            }

            if (!IsContainFalseStatement(Affidavit))
            {
                AddReasonEntry($"{nameof(IsContainFalseStatement)} is false");
                return(false);
            }

            var affiant = Affidavit.GetAffiant(persons);

            if (affiant == null)
            {
                AddReasonEntry($"{nameof(Affidavit)} {nameof(Affidavit.GetAffiant)} returned nothing");
                return(false);
            }

            var affiantTitle = affiant.GetLegalPersonTypeName();

            if (!IsAffiantLawEnforcement(affiant))
            {
                AddReasonEntry($"{affiantTitle} {affiant.Name}, {nameof(IsAffiantLawEnforcement)} is false");
                return(false);
            }

            if (!IsDisregardOfTruth(affiant))
            {
                AddReasonEntry($"{affiantTitle} {affiant.Name}, {nameof(IsDisregardOfTruth)} is false");
                return(false);
            }

            if (!IsFalseStatementCritical(Affidavit))
            {
                AddReasonEntry($"{nameof(IsFalseStatementCritical)} is false");
                return(false);
            }

            return(true);
        }