Ejemplo n.º 1
0
 internal static void ValidateNewRestrictions(this IHasRestrictions entity)
 {
     if (entity == null)
     {
         return;
     }
     if ((entity.MinAge ?? 0) > (entity.MaxAge ?? 100))
     {
         throw new Exception($"The Min. Age [{entity.MinAge}] is greater than the Max. Age [{entity.MaxAge}].");
     }
     if ((entity.MinGrade != GradeLevels.NotSet) && (entity.MaxGrade != GradeLevels.NotSet) && entity.MinGrade > entity.MinGrade)
     {
         throw new Exception($"The Min. Grade [{entity.MinGrade}] is greater than the Max. Grade [{entity.MaxGrade}].");
     }
 }
Ejemplo n.º 2
0
 internal static bool CanCheckOut(this IHasRestrictions volume, int?age = null, GradeLevels grade = GradeLevels.NotSet)
 {
     if (volume.MinAge.HasValue && (age ?? 100) < volume.MinAge.Value)
     {
         return(false);
     }
     if (volume.MaxAge.HasValue && (age ?? 0) > volume.MaxAge.Value)
     {
         return(false);
     }
     if (volume.MinGrade != GradeLevels.NotSet && grade != GradeLevels.NotSet && volume.MinGrade > grade)
     {
         return(false);
     }
     if (volume.MaxGrade != GradeLevels.NotSet && grade != GradeLevels.NotSet && volume.MaxGrade < grade)
     {
         return(false);
     }
     return(true);
 }
Ejemplo n.º 3
0
        internal static bool CanCheckOut(this IHasRestrictions volume, IPatron patron)
        {
            if (volume == null || patron == null)
            {
                return(false);
            }

            if (volume.MinAge.HasValue && patron.MaxAge.HasValue)
            {
                if (patron.MaxAge < volume.MinAge)
                {
                    return(false);
                }
            }
            if (volume.MaxAge.HasValue && patron.MinAge.HasValue)
            {
                if (patron.MinAge > volume.MaxAge)
                {
                    return(false);
                }
            }
            if (volume.MinGrade != GradeLevels.NotSet && patron.MaxGrade != GradeLevels.NotSet)
            {
                if (patron.MaxGrade < volume.MinGrade)
                {
                    return(false);
                }
            }
            if (volume.MaxGrade != GradeLevels.NotSet && patron.MinGrade != GradeLevels.NotSet)
            {
                if (patron.MinGrade > volume.MaxGrade)
                {
                    return(false);
                }
            }
            return(volume.CanCheckOut(patron.Age, patron.Grade));
        }