Skip to content

Repository files navigation

C# Guard Pattern

This project contains guard clauses for object, string, int, double, decimal, datetime, datetimeoffset, timespan, URL.

Examples

Guard.Against.Null(name,"Name");Guard.Against.NullOrEmpty(name,"Name");Guard.Against.MinimumLength(name,"Name",10);Guard.Against.NumberLessThan(money,"Money",1000);Guard.Against.NumberGreaterThanOrEqual(money,"Money",1000);Guard.Against.NumberNegative(money,"Money");Guard.Against.DateTimeGreaterThan(startDate,"StartDate",DateTime.Now);Guard.Against.InValidURL("https://nilavpatel.github.io","URL");

For generic <T> type

  • Null

For String

  • NullOrEmpty
  • NullOrWhiteSpace
  • LeadingAndTailingSpace
  • MinimumLength
  • MaximumLength
  • SpecialCharacters
  • Digits
  • Alphabet
  • LowerCase
  • UpperCase
  • Space

For int, double, decimal

  • NumberLessThan
  • NumberGreaterThan
  • NumberLessThanOrEqual
  • NumberGreaterThanOrEqual
  • NumberZero
  • NumberNegative
  • NumberNegativeOrZero
  • NumberOutOfRange

For DateTime

  • DateTimeLessThan
  • DateTimeGreaterThan
  • DateTimeLessThanOrEqual
  • DateTimeGreaterThanOrEqual
  • DateTimeOutOfRange

For DateTimeOffset

  • DateTimeOffsetLessThan
  • DateTimeOffsetGreaterThan
  • DateTimeOffsetLessThanOrEqual
  • DateTimeOffsetGreaterThanOrEqual
  • DateTimeOffsetOutOfRange

For TimeSpan

  • TimeSpanLessThan
  • TimeSpanGreaterThan
  • TimeSpanLessThanOrEqual
  • TimeSpanGreaterThanOrEqual
  • TimeSpanOutOfRange

For Others

  • InValidURL
  • InValidEmailId
  • InValidGuid

For bool

  • True
  • False

How to create custom guard clause?

publicstaticclassCustomGuardClause{publicstaticvoidMoreThanMaxLimit(thisIGuardClauseguardClause,intargument,stringargumentName){if(argument>Int16.MaxValue){thrownewArgumentException(string.Format("{0} is not allowing to be more than Int16 max limit",argumentName));}}}

About

Guard-Pattern validations in C#

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages