public override bool CompareTo(IMensRea criminalIntent, params ILegalPerson[] persons) { var isRequiredIntent = criminalIntent is Negligently || criminalIntent is Recklessly || criminalIntent is GeneralIntent; if (!isRequiredIntent) { AddReasonEntry($"{nameof(ManslaughterInvoluntary)} is expected {nameof(Recklessly)} " + $"or {nameof(Negligently)} intent, not {criminalIntent?.GetType().Name}"); return(false); } return(true); }
public bool CompareTo(IMensRea criminalIntent, params ILegalPerson[] persons) { var validIntent = _information is MilitaryActivities ? new[] { typeof(Purposely), typeof(SpecificIntent) } : new[] { typeof(Purposely), typeof(SpecificIntent), typeof(Knowingly), typeof(GeneralIntent) }; if (validIntent.All(i => criminalIntent.GetType() != i)) { var nms = string.Join(", ", validIntent.Select(t => t.Name)); AddReasonEntry($"{nameof(Espionage)} for {_information.GetCategory()} requires intent {nms}"); return(false); } return(true); }
public override bool CompareTo(IMensRea criminalIntent, params ILegalPerson[] persons) { var adequateProvation = criminalIntent as AdequateProvocation; var defendant = this.Defendant(persons); if (adequateProvation != null && defendant != null && adequateProvation.IsValid(defendant)) { return(true); } AddReasonEntry($"{nameof(ManslaughterVoluntary)} is a redux of {nameof(Murder)} " + $"by means of {nameof(AdequateProvocation)} intent, " + $"which {criminalIntent?.GetType().Name} is not"); return(false); }
public bool CompareTo(IMensRea criminalIntent, params ILegalPerson[] persons) { var validIntent = new[] { typeof(SpecificIntent), typeof(Purposely), typeof(GeneralIntent), typeof(Knowingly), typeof(Negligently) }; if (validIntent.All(t => t != criminalIntent.GetType())) { var nms = string.Join(", ", validIntent.Select(t => t.Name)); AddReasonEntry($"{nameof(Sabotage)} requires intent of {nms}"); return(false); } return(true); }
public bool CompareTo(IMensRea criminalIntent, params ILegalPerson[] persons) { var defendant = persons.Defendant(); if (defendant == null) { return(false); } var isByViolence = IsByViolence(defendant); var validIntent = isByViolence ? new[] { typeof(Purposely), typeof(SpecificIntent) } : new[] { typeof(Knowingly), typeof(GeneralIntent) }; //Cramer v. U.S., 1945, different intent based on which predicate if (validIntent.All(i => criminalIntent.GetType() != i)) { var nms = string.Join(", ", validIntent.Select(t => t.Name)); AddReasonEntry($"{nameof(Treason)} for {nameof(IsByViolence)} as {isByViolence} requires intent {nms}"); return(false); } return(true); }
public bool CompareTo(IMensRea criminalIntent, params ILegalPerson[] persons) { var defendant = persons.Defendant(); if (defendant == null) { return(false); } //Yates v. U.S., 354 U.S. 298 (1957), different intent based on which predicate var inWrittenForm = IsInWrittenForm(defendant); var validIntent = inWrittenForm ? new[] { typeof(Purposely), typeof(SpecificIntent) } : new[] { typeof(Knowingly), typeof(GeneralIntent) }; if (validIntent.All(i => criminalIntent.GetType() != i)) { var nms = string.Join(", ", validIntent.Select(t => t.Name)); AddReasonEntry($"{nameof(Sedition)} for {nameof(IsInWrittenForm)} as {inWrittenForm} requires intent {nms}"); return(false); } return(true); }