Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }