public override bool IsValid(params ILegalPerson[] persons) { var legalPerson = GetSubjectPerson(persons); if (legalPerson == null) { AddReasonEntry($"{nameof(GetSubjectPerson)} returned nothing"); return(false); } var lpTypeName = legalPerson.GetLegalPersonTypeName(); if (Imminence != null && !Imminence.IsValid(persons)) { AddReasonEntry($"{lpTypeName}, {legalPerson.Name}, {nameof(Imminence)} is false"); AddReasonEntryRange(Imminence.GetReasonEntries()); return(false); } if (Provocation != null && !Provocation.IsValid(persons)) { AddReasonEntry($"{lpTypeName}, {legalPerson.Name}, {nameof(Provocation)} is false"); AddReasonEntryRange(Provocation.GetReasonEntries()); return(false); } if (Proportionality != null && !Proportionality.IsValid(persons)) { AddReasonEntry($"{lpTypeName}, {legalPerson.Name}, {nameof(Proportionality)} is false"); AddReasonEntryRange(Proportionality.GetReasonEntries()); return(false); } AddReasonEntryRange(Imminence?.GetReasonEntries()); AddReasonEntryRange(Provocation?.GetReasonEntries()); AddReasonEntryRange(Proportionality?.GetReasonEntries()); return(true); }
public override bool IsValid(params ILegalPerson[] persons) { var legalPerson = GetSubjectPerson(persons); if (legalPerson == null) { AddReasonEntry($"{nameof(GetSubjectPerson)} returned nothing"); return(false); } var lpPersonType = legalPerson.GetLegalPersonTypeName(); if (IsResponsibleForSituationArise != null && IsResponsibleForSituationArise(legalPerson)) { AddReasonEntry($"{lpPersonType}, {legalPerson.Name}, {nameof(IsResponsibleForSituationArise)} is true"); return(false); } if (!IsMultipleInHarm(legalPerson)) { AddReasonEntry($"{lpPersonType}, {legalPerson.Name}, {nameof(IsMultipleInHarm)} is false"); return(false); } if (Imminence != null && !Imminence.IsValid(legalPerson)) { AddReasonEntry($"{lpPersonType}, {legalPerson.Name}, {nameof(Imminence)} is false"); AddReasonEntryRange(Imminence.GetReasonEntries()); return(false); } if (Proportionality != null && !Proportionality.IsValid(legalPerson)) { AddReasonEntry($"{lpPersonType}, {legalPerson.Name}, {nameof(Proportionality)} is false"); AddReasonEntryRange(Proportionality.GetReasonEntries()); return(false); } AddReasonEntryRange(Imminence?.GetReasonEntries()); AddReasonEntryRange(Proportionality?.GetReasonEntries()); return(true); }
public NecessityDefense() : base(ExtensionMethods.Defendant) { Proportionality = new ChoiceThereof <T>(ExtensionMethods.Defendant); Imminence = new Imminence(ExtensionMethods.Defendant); }
public NecessityDefense(Func <ILegalPerson[], ILegalPerson> getSubjectPerson) : base(getSubjectPerson) { Proportionality = new ChoiceThereof <T>(getSubjectPerson); Imminence = new Imminence(getSubjectPerson); }
public ThreatenedBattery(Func <ILegalPerson[], ILegalPerson> getSubjectPerson) : base(getSubjectPerson) { Imminence = new Imminence(getSubjectPerson); }
protected DefenseOfBase(Func <ILegalPerson[], ILegalPerson> getSubjectPerson) : base(getSubjectPerson) { Provocation = new Provocation(GetSubjectPerson); Imminence = new Imminence(GetSubjectPerson); Proportionality = new Proportionality <ITermCategory>(GetSubjectPerson); }